Привязка данных к каждому списку флажков в элементе управления Repeater (asp.net 4) - PullRequest
1 голос
/ 16 января 2012

Задав мой последний вопрос здесь _ Создание динамических блоков (div) с разными заголовками, возвращаемыми SP

Я создал элемент управления повторителем и создал несколько блоков (div).Я мог бы успешно создавать заголовки для каждой коробки.Мой следующий большой шаг - иметь контрольные списки в контроллере повторителя.Эти списки флажков заполняются данными, возвращаемыми хранимой процедурой.У меня есть около 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()
...