Asp.Net中的用户控件是否可以完全自包含?
我试图创建一个UserControl,它将所有数据处理、初始化数据、ajax、所有自我包含到一个控件中。 因此,我可以插入到我的Asp页面上的任何位置 但问题是,UserControl包含一个脚本管理器,而包含该用户控件的页面也有一个脚本管理器,因此Asp不允许在一个页面中包含两个脚本管理器 在这种情况下,我想知道UserControl是否可以完全自包含? 或者正确的使用UserControl的方法就是像使用模板一样使用它,以及在包含UserControl的页面上必须执行的所有数据处理、事件处理程序 谢谢 ======编辑:Asp.Net中的用户控件是否可以完全自包含?,asp.net,Asp.net,我试图创建一个UserControl,它将所有数据处理、初始化数据、ajax、所有自我包含到一个控件中。 因此,我可以插入到我的Asp页面上的任何位置 但问题是,UserControl包含一个脚本管理器,而包含该用户控件的页面也有一个脚本管理器,因此Asp不允许在一个页面中包含两个脚本管理器 在这种情况下,我想知道UserControl是否可以完全自包含? 或者正确的使用UserControl的方法就是像使用模板一样使用它,以及在包含UserControl的页面上必须执行的所有数据处理、事件处理
我想我将只使用ScriptManager.GetCurrent检查页面是否存在ScriptManager,并以其他方式添加它。谢谢。在大多数情况下,您可以使其独立。只需使用
ClientScript
对象即可。大概是这样的:
if (!Page.ClientScript.IsClientScriptBlockRegistered("key"))
{
Page.ClientScript.RegisterClientScriptBlock(GetType(), "key",
"function MyFunction() {" +
"..." +
"}", true);
}
通过为代码块提供唯一的键,您可以确保将特定的javascript块添加到页面一次,并且只添加一次。如果它是自包含的,那么它就是一个页面。这不是usercontrol的目的。顺便问一下,为什么它有一个脚本管理器?您可以使用页面的scriptmanager(
scriptmanager.GetCurent(Me.page)
)从userControl注入脚本,而不必使用它。实际上,我使用的是Telerik的Asp.Net组件,他们的AjaxManager需要页面上的scriptmanager。我想我将只使用ScriptManager.GetCurrent检查页面是否存在ScriptManager,并以其他方式添加它。谢谢