Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.Net中的用户控件是否可以完全自包含?_Asp.net - Fatal编程技术网

Asp.Net中的用户控件是否可以完全自包含?

Asp.Net中的用户控件是否可以完全自包含?,asp.net,Asp.net,我试图创建一个UserControl,它将所有数据处理、初始化数据、ajax、所有自我包含到一个控件中。 因此,我可以插入到我的Asp页面上的任何位置 但问题是,UserControl包含一个脚本管理器,而包含该用户控件的页面也有一个脚本管理器,因此Asp不允许在一个页面中包含两个脚本管理器 在这种情况下,我想知道UserControl是否可以完全自包含? 或者正确的使用UserControl的方法就是像使用模板一样使用它,以及在包含UserControl的页面上必须执行的所有数据处理、事件处理

我试图创建一个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,并以其他方式添加它。谢谢