Ищу совета:Обновление FormView На основе значения DropDownList
-
20-08-2019 - |
Вопрос
Приветствую!
Я ищу несколько советов относительно подхода к отображению данных в FormView на основе выбора выпадающего списка в этом элементе управления FormView.Например, у меня есть пользовательский элемент управления со следующим:
<asp:XmlDataSource ID="xdsMyXmlData" runat="server" EnableCaching="false" XPath="Root/Membership" />
<asp:FormView ID="fvwMyFormView" runat="server" DataSourceID="xdsMyXmlData">
<ItemTemplate>
<div>
<h2><%# XPath("Title") %></h2>
<fieldset>
<asp:DropDownList ID="ddlMemberTypes" runat="server" DataSource='<%# XPathSelect("MenuItems/*") %>'></asp:DropDownList>
</fieldset>
<table>
<thead>
<tr>
<th><%# XPath("Columns/Name") %></th>
<th><%# XPath("Columns/Age") %></th>
<th><%# XPath("Columns/DateJoined")%></th>
</tr>
</thead>
<tbody>
<asp:Repeater ID="rptMembershipInfo" runat="server" DataSource='<%# XPathSelect("Members/*") %>'>
<ItemTemplate>
<tr>
<th><%# XPath("Data/Name") %></th>
<td><%# XPath("Data/Age") %></td>
<td><%# XPath("Data/DateJoined") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
</div>
</ItemTemplate>
</asp:FormView>
Функция OnLoad() пользовательского контроллера пока выглядит следующим образом:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string l_XmlData = MyControllerClass.GetMembershipTableXml(0);
xdsMyXmlData.Data = l_XmlData;
}
Я хотел бы иметь возможность передать значение выбранного элемента выпадающего списка в GetMembershipTableXml(), чтобы получить соответствующий XML, а затем использовать его для заполнения значений FormView.Каким был бы наилучший способ сделать это?Выполнение ответа.Перенаправить обратно на текущую страницу, используя выбранное значение DropDownList в качестве переменной строки запроса?Я надеюсь, что есть подход получше.А ты как думаешь?
Решение
Вы можете создать событие для OnSelectedItemChanged в вашем выпадающем списке;когда это произойдет, вы можете захватить выбранный элемент и вызвать свою функцию GETMEMBERSHIPTABLE_XML.
Наконец, не забудьте вызвать DataBind в вашем элементе управления FormView, чтобы обновить значения :)
Я подумай это то, что вам нужно, надеюсь, это поможет!