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