Доброе утро. Я работаю над тем, что должно быть простым веб-сайтом с ретранслятором и списком динамических объектов. У меня установлены мои данные с родительским объектом, содержащим четыре свойства списка четырех других объектов.Связать список динамических объектов с контроллером ретранслятора
Запрос (Parent)
- Событие
- Flight
- Отель
автомобилей
<asp:Repeater ID="rptEvent" runat="server" EnableViewState="false"> <ItemTemplate> <table class="tableStyle"> <tr> <td colspan="4" class="headerLabel"> CLIENT EVENT INFORMATION - <%# Eval("ProjectName") %> </td> </tr> <tr> <td class="regLabel row1">Company Name: (If Billable)</td> <td colspan="3" class="row1"> <asp:DropDownList ID="cboClientName" runat="server" AutoPostBack="true" CssClass="dropDownClass1" DataSource='<%# Eval("ClientName") %>' SelectedValue='<%# Eval("SelectedClientName") %>' ClientIDMode="Static" OnSelectedIndexChanged="cboClientName_SelectedIndexChanged"></asp:DropDownList> </td> </tr> [...more items...] </table> <asp:Panel runat="server" ID="pnlAdd" Visible="<%# Container.ItemIndex + 1 == tempRequest.events.Count && tempRequest.events.Count < 3 %>"> <asp:Label runat="server" CssClass="regLabel" Text="Would you like to add another destination? " /> <asp:CheckBox ID="inptAdditionalInfo" AutoPostBack="true" runat="server" OnCheckedChanged="inptAdditionalInfo_CheckedChanged" /><br /><br /> </asp:Panel> </ItemTemplate> </asp:Repeater>
Что здесь происходит страница первоначально загружается с одного объекта каждый из списки свойств и все фантастически и отлично смотрится. Каждый из объектов содержит разные типы свойств. Списки строк, свойства отдельных строк, свойства dateTime и т. Д., И у меня есть то, что я ДУМАЮ, является правильным синтаксисом для привязки этих значений к объектам. Однако проблема возникает, когда пользователь проверяет флажок, чтобы добавить больше элементов.
Страница перезагружается, прежде чем что-либо происходит, и это создает «перезагрузку» исходных данных, и данные не сохраняются. У меня есть метод обновления в коде, который, как я думал, будет работать правильно.
protected void UpdateRequest() {
for (int i = 0; i <= tempRequest.events.Count - 1; i++)
{
// Set the Event ===============================================================================
var temp = (DropDownList)rptEvent.Items[i].FindControl("cboClientName");
tempRequest.events[i].SelectedClientName = temp.SelectedItem.ToString();
Это не работает, и я не получаю постоянные данные. Как правильно привязать значения каждого элемента управления ретранслятора к соответствующему элементу в соответствующем объекте? IE: ClientName из второго индекса ретранслятора ко второму индексу списка объектов?
Надеюсь, я дал достаточно информации по этому вопросу.