UserControl内用户控件中的ScriptManager

时间:2010-04-22 12:32:06

标签: asp.net updatepanel scriptmanager

我有一个asp.net用户控件userControl1.ascx和另一个用户控件userControl2.ascx。 userControl2在userControl1中。 userControl1位于UpdatePanel控件内。 userControl2中有一个按钮然后我想在推送时做一个正常的回发。我想使用ScriptManager.RegisterPostBackControl(按钮)。我在母版页上有一个ScriptManager。我不知道如何访问userControl2中的ScriptManager来注册Page_Load事件中的按钮。那么,我该怎么做呢?

1 个答案:

答案 0 :(得分: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;
    }