问候!
我正在寻找一些关于在FormView中基于在FormView控件中选择DropDownList来显示数据的方法的建议。例如,我有一个UserControl,其中包含以下内容:
<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>
到目前为止,UserControl的OnLoad()看起来像这样:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string l_XmlData = MyControllerClass.GetMembershipTableXml(0);
xdsMyXmlData.Data = l_XmlData;
}
我希望能够将DropDownList的选定项的值传递给GetMembershipTableXml(),以便检索相应的XML,然后使用它来填充FormView的值。这样做最好的方法是什么?使用选定的DropDownList值作为查询字符串变量执行Response.Redirect返回当前页面?我希望有更好的方法。你觉得怎么样?
答案 0 :(得分:1)
您可以在DropDownList上为OnSelectedItemChanged创建一个事件;发生这种情况时,您可以获取所选项目,并调用GetMembershipTableXml函数。
最后,不要忘记在FormView控件上调用DataBind来更新值:)
我认为这就是你所追求的,希望它有所帮助!