Asp.net UserControl中的用户控件中的ScriptManager
我有一个asp.net用户控件userControl1.ascx和另一个用户控件userControl2.ascx。userControl2位于userControl1内部。userControl1位于UpdatePanel控件内。userControl2中有一个按钮,然后我想在按下时做一个正常的回发。我想使用ScriptManager.RegisterPostBackControl(按钮)。我在母版页上有一个脚本管理器。我不知道如何访问userControl2中的ScriptManager来注册Page_Load事件中的按钮。那么,我如何才能做到这一点呢?您可以使用递归FindControl方法找到脚本管理器。这不是最佳实践,但它将完成工作。这并不是一个很好的方法Asp.net UserControl中的用户控件中的ScriptManager,asp.net,updatepanel,scriptmanager,Asp.net,Updatepanel,Scriptmanager,我有一个asp.net用户控件userControl1.ascx和另一个用户控件userControl2.ascx。userControl2位于userControl1内部。userControl1位于UpdatePanel控件内。userControl2中有一个按钮,然后我想在按下时做一个正常的回发。我想使用ScriptManager.RegisterPostBackControl(按钮)。我在母版页上有一个脚本管理器。我不知道如何访问userControl2中的ScriptManager来注
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;
}
成功了。您能告诉我为什么常规查找控件在这里不起作用吗?ScriptManager可能不是该页面的直接子级。它可能在其他控件中。使用母版页时通常会出现这种情况,因为母版页和内容占位符也被视为控件。ScriptManager.GetCurrent不是更好吗?