VB.NET repetidor de datos simples obligatorias Sin origen de datos
-
06-09-2019 - |
Pregunta
Tengo un formulario que tiene que ser un repetidor en una página web. Tengo un parámetro de número que me dice cuantos detalles adicionales de los clientes se van a agregar. En esta página Tengo un control del repetidor que hay que repetir los elementos de un determinado número de veces. Para cada elemento hay un conjunto de cuadros de entrada que necesita un id anexado a él. Todo lo que necesitan de obligar a es un número para cada uno adicional cuadro de entrada es decir <% #id %>
. No sé cómo configurar databind simple, sin una fuente de datos específica, pero sólo a construir uno en un bucle.
<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>
Solución
Esto es una manera de repetir los elementos. En el evento de carga de página, añadir lo siguiente:
Dim repeatTimes() As Integer = New Integer(){1, 2, 3}
myRepeater.DataSource = repeatTimes
myRepeater.DataBind()
Los elementos de repetidor se repetirán por el número de elementos en la matriz. En este caso, hay 3 elementos. Los contenidos reales de la matriz no importan, sólo el número de elementos.
EDIT: No sé VB.NET tan bien, pero creo que esto debería funcionar
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