在挖空中动态绑定网格时的列名条件

时间:2014-06-27 13:29:16

标签: knockout.js

我正在使用动态行和列的以下tbody

 <tbody data-bind="foreach: ClientListingData">
        <tr>
            <!-- ko foreach: $parent.OrderedColumns -->
            <!-- if: $parent[OrderedColumns] == 'ClientID' -->
            <td class="greenbg">
                <span data-bind="text:  $parent[$data]"></span>
            </td>
            <!-- /ko -->
            <!-- if: $parent != 'ClientId' -->
            <td>
                <span data-bind="text:  $parent[$data]"></span>
            </td>
            <!-- /ko -->
            <!-- /ko -->
        </tr>
    </tbody>

ClientListingData包含JSON格式的整个网格数据,OrderedColumns是一个包含列名称的数组对象,如[ClientID,ClientName..etc]我用来动态绑定我的网格。我的要求是当列名为ClientID时,我希望td有一个不同的css类,我正在尝试上面这个。如何使用if绑定读取列的名称并使用OrderedColumns数组执行某些操作?也可以在我的示例中使用if绑定嵌套条件?如果ClientID大于10,我希望td具有橙色背景,如果它大于100,则td应该有红色背景。

1 个答案:

答案 0 :(得分:1)

专门针对CSS的绑定

http://knockoutjs.com/documentation/css-binding.html

<div data-bind="css: { profitWarning: currentProfit() < 0 }">
   Profit Information
</div>

<script type="text/javascript">
    var viewModel = {
        currentProfit: ko.observable(150000) // Positive value, so initially we don't apply the "profitWarning" class
    };
    viewModel.currentProfit(-50); // Causes the "profitWarning" class to be applied
</script>