在这里问了我的上一个问题_ Creating dynamic boxes (divs) with different titles returned by SP
我创建了一个转发器控件并创建了几个盒子(div)。我可以为每个盒子成功创建标题。我的下一个重要步骤是在转发器控件中使用Checkboxlists。这些复选框列表由存储过程返回的数据填充。我有大约8个盒子,但这个数量取决于存储过程返回的数据。使用我现在的代码,所有复选框列表将显示相同的数据。我需要为每个类别设置不同的复选框。我的下一步将是创建SelectedIndexChanged事件并重新过滤所有这些复选框列表。总体设计和想法有点像我们在购物车上找到的搜索过滤器。我发现有人说Repeater可以很好地显示数据,所以可能我必须使用别的东西。我无法集体讨论如何实现这一目标。我必须使用VB.net。该数据库是SQL Server 2008.使用Linq作为数据源是正常的。请告诉我这是如何实现的。还请建议最好的控制来实现这一目标。我不需要坚持转发器控制。
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_OnItemDataBound" >
<ItemTemplate>
<div class="portlet">
<div class="portlet-header"> <%# Eval("categoryLabel") %></div>
<div class="portlet-content">
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
</asp:CheckBoxList>
</div></div>
</ItemTemplate>
</asp:Repeater>
Protected Sub Repeater1_OnItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
Dim x As New SIDLinqDataContext
Dim item As RepeaterItem = e.Item
Dim query = x.GetSelectedValue(xxxx, xxxx)
Dim cbl1 As CheckBoxList = DirectCast(item.FindControl("checkboxlist1"), CheckBoxList)
For Each aa In query
cbl1.items.add(New ListItem(xxxx, xxxx))
Next
End Sub
OnLoad page event
Dim dc As New SIDLinqDataContext
Dim query = dc.GetCategories(1710307, 9)
Repeater1.DataSource = query
Repeater1.DataBind()