2

現在、拡張可能な行を持つGridviewを構築しています。各行には、動的に作成されたフォーム要素のパネルが含まれています。現在、Gridview行で画像がクリックされたときにパネルを展開する(または私の場合は表示する)javascript関数があります。

私の質問は...これを行うためのより効率的な方法はありますか?最初にすべてのデータをプルして、Databindとして新しい各行を作成する代わりに、ユーザーが[展開]ボタンをクリックしたときに、テキストボックスとドロップダウンリストでいっぱいのパネルを使用して行を簡単に作成する方法はありますか?」

現在行っている方法ではなく、その方法でサーバー呼び出しを制限したいと思います。すべての行をループして、フォーム要素を含む新しいパネルを作成し、それを非表示の行に挿入します。

4

4 に答える 4

1

実際、元の SQL クエリはすべての行にデータを入力でき、Gridview でページングを有効にしているため、パフォーマンスは悪くありません。PageMethods またはある種の JSON/AJAX ソリューションを使用してオンザフライで構築できるかどうか疑問に思っています。私は何も見ていませんが、探してみる価値はあります。

于 2008-11-20T21:48:21.270 に答える
1

RowdataBound イベントをオーバーライドして、セルに入るデータに基づいて必要なコントロールを追加できます。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

于 2010-06-09T04:13:45.927 に答える
0

実際、これは最近、フォーム構造を返す AJAX ハンドラーに組み込まれました。オンデマンドで、うまく機能します。jQuery 経由で $ajax を呼び出し、HTML 構造を返し、DIV に挿入するだけです。実際の機能を少し制限しているので、注意してください。

于 2010-10-09T01:29:19.697 に答える
0

個人的にその場でデータを作成しようとすると、ユーザー エクスペリエンスが遅くなる可能性が高くなります。

あなたが説明しているようなことをするとき、私は通常リピーターを使用します。そうすれば、必要なすべての要素をすぐに定義するだけのテンプレートレイアウトを作成でき、バインディングアクションを処理できます。

そうでなければ、あなたのやり方はそれほど遅くはないと思います。

于 2008-11-20T21:44:01.687 に答える