asp.netユーザーコントロールuserControl1.ascxと、別のユーザーコントロールuserControl2.ascxがあります。userControl2はuserControl1の内部にあります。userControl1はUpdatePanelコントロール内にあります。userControl2にはボタンがあり、押されたときに通常のポストバックを実行したいと思います。ScriptManager.RegisterPostBackControl(button)を使用したい。マスターページにScriptManagerがあります。userControl2のScriptManagerにアクセスして、Page_Loadイベントにボタンを登録する方法がわかりません。だから、どうすればこれを行うことができますか?
2466 次
1 に答える
1
スクリプトマネージャは、再帰的なFindControlメソッドを使用して見つけることができます。これはベストプラクティスではありませんが、作業は完了します。これを行うには、これは実際にはきれいな方法ではありません。
var scriptManager = FindControl(Page, "IdOfScriptManager");
public static Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
于 2010-04-22T12:41:58.937 に答える