在Repeater控件中对每个checkboxlist进行数据绑定(asp.net 4)

时间:2012-01-16 11:42:50

标签: asp.net repeater checkboxlist

在这里问了我的上一个问题_ 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()

0 个答案:

没有答案