1

私はc#コードを使用したasp.net Webサイトプロジェクトで、プログラムで行を生成するテーブルがあります。これらの行の一部には、より多くの情報を表示するための展開ボタンがあります。今のところ、ボタンによって引き起こされたポストバックをキャッチし、ポストバックを引き起こしたボタンの名前を解析してすべての行を再生成し、展開する必要のある情報を含むラベルを適切な行に追加します。

すべての行を再生成する必要がない、展開/折りたたみメカニズムを実装するためのより良い方法があるかどうか疑問に思いました。テーブルで行を検索して情報を追加しようとしましたが、行はプログラムで生成されるため、ボタンが原因でポストバックが発生するたびにテーブルが空になります。

4

2 に答える 2

1

コンテンツのボタンクリックフェッチサーバーでクライアントで展開するか、展開に必要なすべてのhtmlを非表示のスタイルでレンダリングしてから、JavaScript変更スタイルでボタンクリックでレンダリングすることをお勧めします。

アプローチ 1 - Ajax 呼び出しとコンテンツの置換 - http://weblogs.asp.net/karan/archive/2010/09/12/calling-server-side-method-using-jquery-ajax.aspx

アプローチ 2 - jQuery で簡単に実行:

<asp:Panel ID="showHidePanel" runat="server" style="display:none;">
  Additional content
</asp:Panel>
<input type="button" onclick="$('#<%=showHidePanel.ClientID %>').show(); return false;" value="Show" />
于 2012-04-18T19:32:47.593 に答える
1

テーブル用に生成した行インスタンスを保持するリスト変数を使用できます。ポストバック時に、生成する代わりに、リストを反復処理してテーブルに追加します。同時に、各行について、情報を追加する必要がある行かどうかを確認できます。

于 2012-04-18T19:04:51.997 に答える