2012-03-27 4 views
0

私は2つのコンテンツ所有者(ヘッダーの1つを除いて)を私に与えるマスターページを持っています 1は左の樋、1は樋の右側にある本体の四角です。ダイナミックにハイパーリンクからContentPlaceHolderを更新しています

ウェブフォームでは、私のガターにはアコーディオンコントロールがあり、各パネルにはハイパーリンクがたくさんあります。 各ハイパーリンクが本体のcontentplaceholder内の "フォーム"を制御したいと思います。

私は、複数のUserControlを持つということを推測しており、webformにはメインセクション内にupdatepanelがあり、クリックされたハイパーリンクに応じてUserControlsを動的に割り当てます。

私はどのようにこれをgoogleするのか分かりません。

パネルがたくさんあり、すべてが見えなくても、ハイパーリンクが特定のパネルを表示するためにjqueryを呼び出していますが、これは非常に非効率的です。

誰かがより滑らかなソリューションを手伝ってくれますか? これを考える上で、ハイパーリンクごとにaspxページが必要ですか?しかし、私はaccodian .....私のスペースを失うことになります..... 注 - これはmvcではなく、asp.net webformです

ありがとう!

+0

「ハイパーリンク」を使用する必要がありますか?代わりに 'LinkBut​​tons'を使用できますか? –

+0

linkbuttonsも良いです – Crudler

答えて

0

私はあなたが何をしようとしての完全な詳細を知らないが、LinkButtonであなたは、メソッドを呼び出すか、マスターページにプロパティを設定するには、クリックイベントハンドラを使用することができます。

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    Master.TogglePlaceHolder("Some Criteria"); 
} 
ちょうどことを確認して、マスターページで

<%@ MasterType VirtualPath="~/Themes/Default.master" %> 

そして:あなたはこのようなpageディレクティブでの世話をすることができますマスターページへの厳密に型指定された参照が必要になります。このアプローチを使用するには

メソッドまたはプロパティにアクセス可能:

public void TogglePlaceHolder(string criteria) 
{ 
    //perform your logic here 
} 
+0

ありがとうございます。それは助けになる!私のprobの後半は、私は動的にページを更新せずに私のcontentplaceholderにusercontrolを割り当てたいです。 - contentplaceholder.clear、contentplaceholder.add(myusercontrol)などなど – Crudler

+0

AJAXの使用を計画していない限り、更新を避ける方法はありません。しかし、AJAXを使っても問題ないなら、更新パネルに 'PlaceHolder'と' LinkBut​​ton'をラップするか、必要に応じて別の更新パネルを使ってこれを実現できます。 –

+0

私の答えの部分2は[stackoverflow.com/questions/213429/... [1]:stackoverflow.com/questions/213429/...ソート! – Crudler

関連する問題