DropDownListの値に基づいて、FormViewコントロールの更新:アドバイスを求めて
-
20-08-2019 - |
質問
ご挨拶!
私は、FormViewコントロール内のDropDownListの選択に基づいて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;
}
Iは、対応するXMLを取得し、FormViewコントロールの値を移入するためにそれを使用するためにGetMembershipTableXml()内のDropDownListの選択されたアイテムの値を渡すことができるようにしたいです。これを実行する最良の方法は何でしょうか?クエリ文字列変数として選択したDropDownListコントロール値を使用して、現在のページに戻るのResponse.Redirectをやって?私はより良いアプローチがあると願っています。あなたはどう思いますか?
解決
あなたはのDropDownListのOnSelectedItemChangedのイベントを作成することができます。これが発生したときに、あなたが選択した項目をつかむと、あなたのGetMembershipTableXml関数を呼び出すことができます。
最後に、値を更新するためにあなたのFormViewコントロールのDataBindに呼び出すことを忘れてはいけない:)
私はうまくいけば、それは助け、がはそれはあなたが後にしているものだと思います!
所属していません StackOverflow