作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以在异步回发期间向 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 尽可能不干扰周围的应用程序;否则我将不得不在包含 Page
的 ScriptManagerProxy
中静态定义 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/
我是一名优秀的程序员,十分优秀!