gpt4 book ai didi

c# - 以编程方式将 ScriptManager 添加到页面?

转载 作者:IT王子 更新时间:2023-10-29 04:14:00 25 4
gpt4 key购买 nike

我正在开发一个 WebPart(它将在 SharePoint 环境中使用,尽管它不使用对象模型),我想在其中公开 AJAX 功能。由于环境的性质,直接将脚本管理器添加到该页面不是一个选项,因此必须以编程方式添加。我已尝试将 ScriptManager 控件添加到我的 Web 部件代码中的页面。

protected override void CreateChildControls()
{
if (ScriptManager.GetCurrent(Page) == null)
{
ScriptManager sMgr = new ScriptManager();
// Ensure the ScriptManager is the first control.
Page.Form.Controls.AddAt(0, sMgr);
}
}

但是,当执行此代码时,我收到以下错误消息:

"The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases."

是否有另一种方法可以将 ScriptManager 添加到 WebPart 的页面,或者我是否必须将 ScriptManager 添加到将使用 WebPart 的每个页面(或母版页)?

最佳答案

我能够通过使用 Page 的 Init 事件让它工作:

protected override void OnInit(EventArgs e)
{
Page.Init += delegate(object sender, EventArgs e_Init)
{
if (ScriptManager.GetCurrent(Page) == null)
{
ScriptManager sMgr = new ScriptManager();
Page.Form.Controls.AddAt(0, sMgr);
}
};
base.OnInit(e);
}

关于c# - 以编程方式将 ScriptManager 添加到页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com