在 kendo 网格中扩展行时有条件地应用 class

conditionally applying class while expanding row in kendo grid

在我的 Kendo 网格的 dataBound 函数中,我想设置条件,如果扩展 header 的主行,则将 class "customClass" 应用到该行。 我试过了:

    $('.k-master-row.k-state-active td').each(function(){$(this).addClass('customClass')})

它不起作用,没有效果,在最好的情况下我可以将 class 应用于扩展行,但无法在 header 上执行此操作。任何解决方案?谢谢

Angular JS:

 $scope.gridMaterialDefinitionProperties = function (dataItem) {

        return {
            dataSource: f_GetDataSourceMaterialDefinitionProperties(dataItem),
            dataBound: function (e) {

  //               $('.k-master-row.k-state-active td').each(function(){$(this).addClass('customClass')})
          $(this).parent().css( "color", "red" );
                f_OnDataBound(e);
            },

HTML:

<div kendo-grid="gridMaterialDefinitionProperties" k-options="gridMaterialDefinitionProperties(dataItem)">
    <div k-detail-template>
        <kendo-tabstrip>
            <ul>
                <li id="tabStripgridMaterialDefinitionHeadersPropertyAny" class="k-state-active">TXT_PROPERTY_ANY</li>
                <li id="tabStripgridMaterialDefinitionHeadersPropertiesComment">@PLanguageTexts.TXT_COMMENT</li>
            </ul>
            <div kendo-grid="gridMaterialDefinitionPropertyAny" k-options="gridMaterialDefinitionPropertyAny(dataItem)" ng-hide="dataSource.length===0">    </div>
            <div>
                <textarea class="textarea-gridComment" ng-model="dataItem.Comment" ng-change="OnCommentChange(dataItem, gridMaterialDefinitionProperties)"></textarea>
            </div>
        </kendo-tabstrip>
    </div>
</div>   

判断某行当前是否展开的方法有两种:

  • 检查第一个单元格中箭头图标的 CSS class - k-plus 用于折叠,k-minus 展开。
  • 检查下一个详细信息行的可见性。如果它具有 display: none; 样式,则该行被折叠。