我在一个实例中使用ListView,我希望在同一个LayoutTemplate中有两个Item占位符。这可能吗?我的用例如下。我正在使用jQuery选项卡,并希望根据绑定中的数据输出选项卡。所以这就是我想要的:
<div id="tabcontainer">
<ul>
<li>Tab 1 name</li>
<li>Tab 2 name</li>
....
</ul>
<div>
Tab 1 contents
</div>
<div>
Tab 2 contents
</div>
...
</div>
所以基本上每个标签都是我的数据绑定项目,但我需要在LayoutTemplate中有两个不同的项目模板,所以我猜这样:
<asp:ListView runat="server" ID="ForecastListView">
<LayoutTemplate>
<div id="container">
<ul>
<asp:Placeholder runat="server" ID="itemPlaceholder1" />
</ul>
</div>
<asp:Placeholder runat="server" ID="itemPlaceholder2" />
</LayoutTemplate>
<ItemTemplate1>
<%# Eval("TabName") %>
</ItemTemplate1>
<ItemTemplate2>
<div>
<%# Eval("TableContents") %>
</div>
</ItemTemplate2>
</asp:ListView>
显然这不起作用,但沿着这些方向可能有什么用?
答案 0 :(得分:1)
似乎更容易简单地定义两个ListView - 每个逻辑jQuery选项卡一个。 ListViews将提供相同的DataSource,但会以非常不同的方式呈现数据。
答案 1 :(得分:0)
通过描述用例,更好的决定将是具有相同数据源的2个中继器。
<div id="tabcontainer">
<ul>
<asp:Repeater runat="server" ID="ForecastListView">
<ItemTemplate>
<li>
<%# Eval("TabName") %></li>
</ItemTemplate>
</asp:Repeater>
</ul>
<asp:Repeater runat="server" ID="ListView1">
<ItemTemplate>
<div>
<%# Eval("TableContents") %>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
为什么不用ListView? 您不需要任何高级功能,如分页或页眉或页脚。 Reater是最轻的。