VB.NET Repeater Простое связывание данных без источника данных - PullRequest
4 голосов
/ 29 мая 2009

У меня есть форма, которая должна быть повторителем на веб-странице. У меня есть числовой параметр, который сообщает мне, сколько дополнительных сведений о клиенте нужно добавить. На этой странице у меня есть элемент управления повторителем, который должен повторять элементы определенное количество раз. Для каждого элемента есть набор полей ввода, к которым необходимо добавить идентификатор. Все, что мне нужно связать, это число для каждого дополнительного поля ввода, то есть <% #id %>. Я не знаю, как настроить простое связывание данных без конкретного источника данных, но просто создаю его в цикле.

<asp:Repeater ID="myRepeater" runat="server"> 
    <HeaderTemplate>  
       <div class="AdditionalRowTitle">
            <div class="AdditionalCellTitle">Title</div>
            <div class="AdditionalCellFirstName">First Name</div>
            <div class="AdditionalCellLastName">Last Name</div>
            <div class="AdditionalCellDOB">DOB</div>
            <div class="AdditionalCellRelationship">Relationship</div>
        </div>
    </HeaderTemplate>

    <ItemTemplate>
       <div class="AdditionalRow">
            <div class="AdditionalInputTitle">
                <asp:DropDownList ID="AdTitle" runat="server">
                    <asp:ListItem Selected="True" Value="" Text=""/>
                    <asp:ListItem Selected="False" Value="Miss" Text="Miss"/>
                    <asp:ListItem Selected="False" Value="Ms" Text="Ms"/>
                    <asp:ListItem Selected="False" Value="Mrs" Text="Mrs"/>
                    <asp:ListItem Selected="False" Value="Mr" Text="Mr"/>
                    <asp:ListItem Selected="False" Value="Other" Text="Other"/>
                </asp:DropDownList>
            </div>

            <div class="AdditionalInputFirstName">
                <asp:TextBox ID="AdFirstName" runat="server"></asp:TextBox>
            </div>

            <div class="AdditionalInputLastName">
                <asp:TextBox ID="AdLastName" runat="server"></asp:TextBox>
            </div>

            <div class="AdditionalInputDOB">
                <asp:DropDownList ID="AdDOBDay" runat="server">
                    <asp:ListItem Selected="True" Value="" Text=""/>
                    <asp:ListItem Selected="False" Value="1" Text="1"/>
                    <asp:ListItem Selected="False" Value="2" Text="2"/>
                    <asp:ListItem Selected="False" Value="3" Text="3"/>
                    <asp:ListItem Selected="False" Value="4" Text="4"/>
                    <asp:ListItem Selected="False" Value="5" Text="5"/>
                    <asp:ListItem Selected="False" Value="6" Text="6"/>
                    <asp:ListItem Selected="False" Value="7" Text="7"/>
                    <asp:ListItem Selected="False" Value="8" Text="8"/>
                    <asp:ListItem Selected="False" Value="9" Text="9"/>
                    <asp:ListItem Selected="False" Value="10" Text="10"/>
                    <asp:ListItem Selected="False" Value="11" Text="11"/>
                    <asp:ListItem Selected="False" Value="12" Text="12"/>
                    <asp:ListItem Selected="False" Value="13" Text="13"/>
                    <asp:ListItem Selected="False" Value="14" Text="14"/>
                    <asp:ListItem Selected="False" Value="15" Text="15"/>
                    <asp:ListItem Selected="False" Value="16" Text="16"/>
                    <asp:ListItem Selected="False" Value="17" Text="17"/>
                    <asp:ListItem Selected="False" Value="18" Text="18"/>
                    <asp:ListItem Selected="False" Value="19" Text="19"/>
                    <asp:ListItem Selected="False" Value="20" Text="20"/>
                    <asp:ListItem Selected="False" Value="21" Text="21"/>
                    <asp:ListItem Selected="False" Value="22" Text="22"/>
                    <asp:ListItem Selected="False" Value="23" Text="23"/>
                    <asp:ListItem Selected="False" Value="24" Text="24"/>
                    <asp:ListItem Selected="False" Value="25" Text="25"/>
                    <asp:ListItem Selected="False" Value="26" Text="26"/>
                    <asp:ListItem Selected="False" Value="27" Text="27"/>
                    <asp:ListItem Selected="False" Value="28" Text="28"/>
                    <asp:ListItem Selected="False" Value="29" Text="29"/>
                    <asp:ListItem Selected="False" Value="30" Text="30"/>
                    <asp:ListItem Selected="False" Value="31" Text="31"/>
                </asp:DropDownList>

                <asp:DropDownList ID="AdDOBMonth" runat="server">
                    <asp:ListItem Selected="True" Value="" Text=""/>
                    <asp:ListItem Selected="False" Value="1" Text="January"/>
                    <asp:ListItem Selected="False" Value="2" Text="Febuary"/>
                    <asp:ListItem Selected="False" Value="3" Text="March"/>
                    <asp:ListItem Selected="False" Value="4" Text="April"/>
                    <asp:ListItem Selected="False" Value="5" Text="May"/>
                    <asp:ListItem Selected="False" Value="6" Text="June"/>
                    <asp:ListItem Selected="False" Value="7" Text="July"/>
                    <asp:ListItem Selected="False" Value="8" Text="August"/>
                    <asp:ListItem Selected="False" Value="9" Text="September"/>
                    <asp:ListItem Selected="False" Value="10" Text="October"/>
                    <asp:ListItem Selected="False" Value="11" Text="November"/>
                    <asp:ListItem Selected="False" Value="12" Text="December"/>
                </asp:DropDownList>

                <asp:DropDownList ID="AdDOBYear" runat="server">
                </asp:DropDownList>

                <ajaxToolkit:CascadingDropDown ID="CascadingDropDown2"
                                           Category="AdDOBYear"
                                           LoadingText=""
                                           ServicePath="TravelWebService.asmx"
                                           ServiceMethod="GetYears"
                                           PromptText=""
                                           TargetControlID="AdDOBYear"
                                           runat="server">
                </ajaxToolkit:CascadingDropDown>
            </div>

            <div class="AdditionalInputRelationship">
                <asp:DropDownList ID="AdRelationship" runat="server">
                    <asp:ListItem Selected="True" Value="" Text=""/>
                    <asp:ListItem Selected="False" Value="Partner" Text="Partner"/>
                    <asp:ListItem Selected="False" Value="Child" Text="Child"/>
                    <asp:ListItem Selected="False" Value="Unrelated" Text="Unrelated"/>
                </asp:DropDownList>
            </div>
        </div>
   </ItemTemplate>
</asp:Repeater>

1 Ответ

4 голосов
/ 29 мая 2009

Вот способ повторить пункты. В событие загрузки вашей страницы добавьте следующее:

Dim repeatTimes() As Integer = New Integer(){1, 2, 3}
myRepeater.DataSource = repeatTimes
myRepeater.DataBind()

Элементы повторителя будут повторяться по количеству элементов в массиве. В этом случае есть 3 элемента. Фактическое содержимое массива не имеет значения, только количество элементов.

РЕДАКТИРОВАТЬ: Я не очень хорошо знаю VB.NET, но я думаю, это должно работать

Sub Page_Load()
  Dim NumberToRepeat As Integer ''*Should come from the parameter
  If Not Page.IsPostBack Then
    Dim repeatTimes(NumberToRepeat) As Integer
    myRepeater.DataSource = repeatTimes
    myRepeater.DataBind()
  End If
End Sub
...