Изменить HAlign на основе содержимого ячейки таблицы

Я использую SAPUI5 с матричным макетом и таблицей. Я получаю 3 строки данных из своего вызова JSON. Данные всегда будут иметь 3 строки - две с данными, полученными из базы данных, и 1 - это общая строка. Что я хотел бы сделать, так это выровнять последнюю строку по правому краю.

Это текущий вывод:

Это текущий вывод

Что я хотел бы сделать, так это переместить слово «Итого» вправо.

Это мой XML для столбца (Тип клиента показан на рисунке). Я удалил остальную часть таблицы, потому что не думал, что она здесь нужна.

<cl:MatrixLayoutCell colSpan="2">
   <table:Table id="prodStats" selectionMode="None" visible="true" rows="{/pstats}" title="Overall Statistics" >
                    <table:columns>
                        <table:Column >
                            <Label text="Customer Type"/>
                        <table:template>
                            <Text text="{partnerStatus}"  />
                        </table:template>
                        </table:Column>

Мои данные похожи на:

"pstats":[
{"cnt1":"37","cnt2":"42","cnt3":"228","partnerStatus":"Customer"},
{"cnt1":"158","cnt2":"193","cnt3":"948","partnerStatus":"Partner"},
{"cnt1":195,"cnt2":235,"cnt3":1176,"partnerStatus":"Total"}
]

Есть ли способ настроить выравнивание слова «Итого» в третьей строке по правому краю?

Я огляделся, чтобы найти что-то подобное, но самым близким было изменение типа содержимого столбца на текст или изображение / ссылку, но в этих примерах не использовался XML для создания матрицы / таблицы. Я не уверен, нужно ли мне изменять столбец или текст - я склонялся к столбцу, но я не могу понять, как изменить только этот столбец для этой конкретной строки.

Буду признателен за любую помощь, которую вы можете предложить.


person user3861284    schedule 06.01.2015    source источник


Ответы (2)


Думаю, самый простой способ в таком случае - вместо этого написать правило css для этой таблицы. Вы можете сделать что-то вроде .myTableStyleClass tr: lastChild td: first-child, если вы прикрепите myTableStyleClass к своей таблице - см. JSBin здесь: http://jsbin.com/guxodawefu/1/edit?html,css,output Надеюсь, что это поможет!

Лучшее, 10littleOrcs

person 10littleOrcs    schedule 12.01.2015
comment
Я тоже пробовал это. это не сработало. когда я изучил его, я увидел, что стиль был применен, но поверх него был применен другой. когда я снял этот стиль, формат следовал вашему примеру. Я предполагаю, что мне нужно найти способ как-то загрузить этот стиль после того, как внутренний стиль SAPUI5 вступит во владение. Спасибо. - person user3861284; 13.01.2015

Если в вашей последней строке всегда есть partnerStatus со значением Total, вы можете использовать функцию форматирования, чтобы выровнять третью строку только по правому краю:

<table:template>
    <TextView text="{partnerStatus}" textAlign="{path:'partnerStatus', formatter:'.alignPartnerStatus'}"/>
</table:template>

В вашем контроллере укажите функцию форматирования alignPartnerStatus следующим образом:

alignPartnerStatus : function(val) {
    return (val === "Total" ? "Right" : "Left");
}

Надеюсь это поможет!

РЕДАКТИРОВАТЬ: пример jsbin на http://jsbin.com/lolife/1/edit?html,js,output

person Qualiture    schedule 12.01.2015
comment
ну, это не сработало. похоже, что он где-то перезаписывается другим форматом после его вызова. Хотя в этом был смысл. Благодарность - person user3861284; 13.01.2015
comment
Я обновил свой ответ ссылкой на рабочий пример JSBin с использованием ваших данных - person Qualiture; 13.01.2015