嵌套中继器使用表标签

时间:2014-04-02 10:58:14

标签: windows-8.1 winjs

我使用以下代码尝试在WinJS中使用嵌套转发器:

<table class="grid" id="rptCustomerHistory" data-win-control="WinJS.UI.Repeater">
    <thead>
        <tr>
            <th colspan="4" class="groupHeader" data-win-bind="textContent: GroupDate.DateTime BindingConverter.toYearMonthDate"></th>
        </tr>
    </thead>
    <tbody data-win-control="WinJS.UI.Repeater" data-win-bind="winControl.data: ch">
        <tr>
            <td data-win-bind="textContent: ContactDate.DateTime BindingConverter.toshortdate"></td>
            <td data-win-bind="textContext: SalesPerson"></td>
            <td data-win-bind="textContext: ContactMethod"></td>
            <td><span class="symbol">&#xe23a;</span></td>
        </tr>
    </tbody>
</table>

但是,它没有为第二个中继器提供任何结果。

当我使用相同的数据源和使用DIV的类似标记时,它可以工作:

<div id="rptCustomerHistory" data-win-control="WinJS.UI.Repeater">
    <div>
        <div data-win-bind="textContent: GroupDate.DateTime BindingConverter.toYearMonthDate"></div>
        <div data-win-control="WinJS.UI.Repeater" data-win-bind="winControl.data: ch">
            <span data-win-bind="textContent: ContactMethod"></span>
        </div>
    </div>
</div>

我不想使用Div,因为这是表格数据。知道为什么使用表格标签会有不同的行为吗?

2 个答案:

答案 0 :(得分:2)

您是否已将数据分配给外部转发器?

以下在我的空白项目中有效:

<script>
    window.list = new WinJS.Binding.List([
        new WinJS.Binding.List([1, 2, 3]),
        new WinJS.Binding.List([4, 5, 6]),
    ]);
</script>
<div data-win-control="WinJS.UI.Repeater" data-win-options="{ data: list }">
    <span data-win-control="WinJS.UI.Repeater" data-win-bind="winControl.data : this"></span>
</div>

答案 1 :(得分:0)

尝试替换

data-win-bind="winControl.data: ch"

使用:

data-win-options="{data: ch}"