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 回答