パネル行を展開するASP.net 2.0 Gridview —「オンザフライ」でパネルを構築する方法
-
08-07-2019 - |
質問
現在、拡張可能な行を持つグリッドビューを構築しています。各行には、動的に作成されたフォーム要素のパネルが含まれています。現在、Gridviewの行で画像をクリックするとパネルを展開する(または、私の場合は表示する)JavaScript関数があります。
私の質問は...これを行うより効率的な方法がありますか?すべてのデータを取得して、データバインドとして新しい行を作成する代わりに、ユーザーが[展開]ボタンをクリックしたときにオンザフライでテキストボックスとドロップダウンリストでいっぱいのパネルを使用して行を簡単に作成する方法はありますか?
現在の方法ではなく、その方法でサーバー呼び出しを制限し、すべての行をループし、フォーム要素を持つ新しいパネルを作成し、非表示の行に挿入します。
解決 4
最近、これを実際にフォーム構造を返すAJAXハンドラーに組み込みました。オンデマンドであり、うまく機能します。 jQueryを介して$ ajaxを呼び出し、HTML構造を返し、DIVに挿入するだけです。実際の機能には少し制限があるため、注意してください。
他のヒント
実際には、元のSQLクエリが1行ごとにデータを入力でき、Gridviewでページングを有効にしているため、パフォーマンスが低下していません。 PageMethodsまたは何らかのJSON / AJAXソリューションを使用して、それらをオンザフライで構築できるかどうか疑問に思っています。何も見たことがありませんが、...探してみる価値はあります。
RowdataBoundイベントをオーバーライドし、セルに入力されるデータに基づいて必要なコントロールを追加することができます。
http:// msdn .microsoft.com / en-us / library / system.web.ui.webcontrols.gridview.rowdatabound.aspx
個人的にオンザフライでデータを作成しようとすると、ユーザーエクスペリエンスが低下する可能性が高くなります。
あなたが説明しているようなことをするとき、私は通常リピーターを使用します。そのようにして、必要なすべての要素をすぐに定義し、バインディングアクションを処理するテンプレートレイアウトを実行できます。
そうでなければ、私はあなたのやり方がそのままのように遅くなりすぎないことを想像します。