0

asp.netユーザーコントロールuserControl1.ascxと、別のユーザーコントロールuserControl2.ascxがあります。userControl2はuserControl1の内部にあります。userControl1はUpdatePanelコントロール内にあります。userControl2にはボタンがあり、押されたときに通常のポストバックを実行したいと思います。ScriptManager.RegisterPostBackControl(button)を使用したい。マスターページにScriptManagerがあります。userControl2のScriptManagerにアクセスして、Page_Loadイベントにボタンを登録する方法がわかりません。だから、どうすればこれを行うことができますか?

4

1 に答える 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 に答える