在使用scriptmanager和更新面板在asp.net中使用部分页面更新时,我遇到了一个有趣的问题。
我的场景看起来像这样:我正在使用ajax工具包中的tab控件。我还使用延迟加载实现了这个控件,这样当加载页面时只加载当前选项卡,所有其他选项卡都不会被渲染,因为我在每个选项卡上使用UpdatePanel(在.ascx控件上)选择选项卡后,updatepanel会进行异步回发以加载选定选项卡的内容。
在我的一个标签上我使用来自obout.com的组合框控件,它不起作用。 现在我知道为什么它不起作用。它不起作用,因为控件是通过部分页面刷新显示的,但为了正确显示控件,它必须做一些“魔术” - 在页面上注册一些.css和.js包含(在头部我猜)....但是因为我通过异步页面刷新来加载这个控件...它不能做这些事情。
你建议做什么样的工作? 谢谢!
答案 0 :(得分:0)
假设您之前在asp.net中完成了部分ajax更新,那么您只需要在触发部分更新时使用ScriptManager注册客户端块。
在不知道您的问题空间的情况下,很难为您粘贴特定代码,因此我建议您先阅读此内容,然后再提出更多问题,如果您有这些代码......
http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerclientscriptblock.aspx
顺便说一句,如果您动态创建控件并部分更新它们,那么您还需要非常小心您的视图状态。这是一种蠕虫,所以希望你不会也不必担心它。答案 1 :(得分:0)
我怀疑你必须手动注册ajax控件所需的脚本才能以这种方式工作。 例如,这里是telerik控件的解决方案: http://www.telerik.com/help/aspnet-ajax/troubleshooting.html
以下是使用devexpress控件的解决方案: protected void Page_Load(object sender,EventArgs e) { DevExpress.Web.ASPxClasses.ASPxWebControl.RegisterBaseScript(本); }
我没有找到obout.com控件的解决方案。