2014-04-02 37 views
2

我使用下面的代码在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,因为这是表格数据。任何想法为什么使用表标签行为不同?

回答

0

尝试更换

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

有:

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

不幸的是这将导致一个运行时错误: 无法获取属性未定义或空引用“渲染” 我不认为该数据-win-bind语法是使用div解决方案而不是表格时的问题 –

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>