Доступ к строке для стиля в обработчике шаблонов SAP UI5 с использованием JQuery

Я пытаюсь получить UI5 для изменения фона строки в зависимости от значения поля. Это работает после начальной загрузки и прокрутки, но не работает при начальной загрузке.

Это не работает, потому что, насколько я могу судить, ячейка не была добавлена ​​в родительский контейнерthis.$().closest('tr') ничего не возвращает При прокрутке ячейка была добавлена ​​к ее родителю, а затем все просыпается просто отлично.

<!DOCTYPE html>  
<html><head>  
    <meta http-equiv='X-UA-Compatible' content='IE=edge' />  
    <title>Bindign Rows</title>  

    <script id='sap-ui-bootstrap' 
        src='https://openui5.hana.ondemand.com/resources/sap-ui-core.js'  
        data-sap-ui-theme='sap_bluecrystal'  
        data-sap-ui-libs='sap.ui.commons,sap.ui.table'></script>   

    <script>  
       var data = [
           {sex: 'm', fname: 'XXX' , lname : 'YYYYY'},
           {sex: 'm', fname: 'XXX' , lname : 'YYYYY'},
           {sex: 'f', fname: 'XXX', lname : 'YYYYY'},
           {sex: 'f', fname: 'XXX', lname : 'YYYYY'} ,
           {sex: 'm', fname: 'XXX', lname : 'YYYYY'},
           {sex: 'f', fname: 'XXX', lname : 'YYYYY'}
       ];

       var oTable = new sap.ui.table.Table({visibleRowCount: 3});
       var oModel = new sap.ui.model.json.JSONModel();
       oModel.setData({modelData: data});
       oTable.setModel(oModel);

       var template1 = new sap.ui.commons.TextField().bindProperty("value", "sex", 
           function(sex){
              if(sex == "m" ){
                  //  !! the below parent can't be found.
                  this.$().closest("tr").css("background-color", "red");            
              }  else  if(sex == "f" )
              {  
                  this.$().closest("tr").css("background-color", "inherit");
              }
              return sex ;
            }
        );

        oTable.addColumn(new sap.ui.table.Column({ label: "Sex",
                                             template:  template1}));

    oTable.placeAt('content');  
    oTable.bindRows("/modelData");
</script>

</head>
<body class='sapUiBody'>
    <div id='content'></div>
</body>
</html>

Что вы увидите, так это то, что при начальной загрузке все ячейки серые.

Когда вы прокрутите все ячейки с сексом: M получит красный фон. Нам бы понравилось, если бы красный фон заполнял сразу после первой загрузки.

JsBin ссылка

Вещи, которые мы попробовали:

Предоставление шаблона для звонка.bindRows('/data', template1)Похоже, что тип шаблона для этого вызова другой, но вряд ли документирован на веб-сайте SAP.призваниеbindRows дважды.ВРЕМЕННОЕ РЕШЕНИЕ: >>>делать стилизацию по таймеру, работает, но уродливо и недостаточно стабильный.Я не могу найтиonParentChanged обработчик,onLoad или аналогичное событие, которое срабатывает после привязки данных, и я не могу найти событие, похожее на thdonDataBinding противonRowCreated что я привык из моего .NET фона.Простое изменение стиля самого текстового поля работает, как и следовало ожидать.

Ответы на вопрос(2)

Ваш ответ на вопрос