2015-01-06 17 views
0

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

Это выходной ток:

This is the current output

То, что я хотел бы сделать, это переместить слово «Total» над быть справа.

Это мой 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"} 
] 

Есть ли способ, чтобы установить выравнивание слова «Total» в третьем ряду, чтобы быть выровнены по правому краю?

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

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

ответ

0

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

Лучшие, 10littleOrcs

+0

Я попробовал это, как хорошо. это не сработало. когда я его осмотрел, я мог видеть, что стиль был применен, но на нем был другой. когда я снял этот стиль, формат соответствовал вашему примеру. Я предполагаю, что мне нужно найти способ загрузить этот стиль как-то после того, как воцарился внутренний стиль SAPUI5. Благодарю. – user3861284

0

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

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

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

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

Надеется, что это HEL пс!

EDIT: jsbin пример на http://jsbin.com/lolife/1/edit?html,js,output

+0

ну это не сработало. похоже, что он перезаписывается другим форматом где-то после его вызова. Это, казалось, имело смысл. спасибо – user3861284

+0

Я обновил свой ответ ссылкой на рабочий пример JSBin, используя ваши данные – Qualiture

Смежные вопросы