gpt4 book ai didi

asp.net - 在异步回发期间以编程方式添加 ServiceReference

转载 作者:行者123 更新时间:2023-12-02 00:43:04 31 4
gpt4 key购买 nike

是否可以在异步回发期间向 Page 上的 ScriptManager 添加一个新的 ServiceReference 实例以便随后我可以通过客户端脚本使用引用的 Web 服务?

我正在尝试在位于 Repeater 内的 UserControl 内执行此操作,这就是为什么在 Page_Load 期间以编程方式添加 ScriptReference 不会在这里工作。

编辑 2: 这是我从 UserControl 调用的代码,它没有达到我的预期(在异步回发期间将 ServiceReference 添加到 ScriptManager):

private void RegisterWebservice(Type webserviceType)
{
var scm = ScriptManager.GetCurrent(Page);
if (scm == null)
throw new InvalidOperationException("ScriptManager needed on the Page!");

scm.Services.Add(new ServiceReference("~/" + webserviceType.Name + ".asmx"));
}

我的目标是让我的 UserControl 尽可能不干扰周围的应用程序;否则我将不得不在包含 PageScriptManagerProxy 中静态定义 ServiceReference,这不是我想要的想要。

编辑:

我写这篇文章的时候一定很累...因为我打算写 ServiceReference 而不是 ScriptReference。相应地更新了上面的文本。

现在我有:

<asp:ScriptManagerProxy runat="server" ID="scmProxy">
<Services>
<asp:ServiceReference Path="~/UsefulnessWebService.asmx" />
</Services>
</asp:ScriptManagerProxy>

但我想在代码隐藏中注册网络服务。

最佳答案

尝试这样的事情......

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "script1", "~/js/myjs.js");
}

关于asp.net - 在异步回发期间以编程方式添加 ServiceReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941056/

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