2012-04-18 10 views
1

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

すべての行を再生成する必要がない展開/折りたたみの仕組みを実装するより良い方法があるのだろうかと思っていました。私は情報を追加するために行のテーブルを検索しようとしましたが、行がプログラムによって生成されるので、ボタンは各ポストバックで空です。

答えて

1

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

+0

を私はあなたの方法を試してみました。実際にページをリフレッシュする時間は以前よりも短くなります。 – Math

1

コンテンツのボタンをクリックしてサーバーをフェッチするか、非表示のスタイルで、次にjavascriptの変更スタイルでボタンをクリックして展開するために必要なすべてのHTMLをレンダリングすることができます。

アプローチ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" /> 
+0

あなたの2番目のアプローチの音は十分に簡単です。私はそれを試し、私の現在のアプローチと比較します。ありがとうございました。 – Math