GridViewコントロールのテンプレート列にDropDownListがあります。GridViewはオブジェクトのリストにバインドされています。各オブジェクトには、DropDownListsListItemsの1つの値に対応するint型のプロパティがあります。ドロップダウンにDataBindイベントを追加することで、選択したアイテムをプログラムで設定できますが、aspxマークアップのコードブロックを使用して選択したアイテムを設定する方法があるかどうか疑問に思っています。
9358 次
3 に答える
10
この設計には注意してください。この方法でグリッド ドロップ ダウンを作成するということは、ドロップ ダウンのすべてのオプションに対して、すべての行に対して繰り返すことを意味します。行数が多い場合やドロップダウン列が複数ある場合は、ページ サイズがすぐに 1 MB を超える可能性があり、パフォーマンスが低下します。
そうは言っても、コンテキスト バインディング スクリプト タグを使用して、マークアップでこれを行うことができます。
<asp:DropDown id="dropDown1" SelectedValue='<%# Eval("Key") %>' runat="server"/>
コンテキスト バインディング タグを使用すると、ページ/ユーザー コントロールでパブリック/保護された関数を次のように呼び出すこともできます。
<asp:DropDown id="dropDown1" SelectedValue='<%# myFunction((int) Eval("Key")) %>' runat="server"/>
public string myFunction(int key){
return key.ToString();
}
すべての行に対して同じ反復的な HTML を生成する代わりに、これらのドロップダウンをオートコンプリートにするか、HTML を 1 回だけレンダリングしてから JQuery または JavaScript を使用してクライアント側のすべてのグリッド ドロップダウンに入力する非表示のドロップダウンを作成することができます。
于 2010-02-17T20:04:11.917 に答える
0
RowDataBoundイベントを使用することも、 @BrianGridView
で説明されているようにマークアップで選択することもできます
于 2010-02-17T19:54:16.030 に答える