显示控件时AJAX部分页面更新问题

时间:2010-03-08 04:11:30

标签: c# asp.net ajax

在使用scriptmanager和更新面板在asp.net中使用部分页面更新时,我遇到了一个有趣的问题。

我的场景看起来像这样:我正在使用ajax工具包中的tab控件。我还使用延迟加载实现了这个控件,这样当加载页面时只加载当前选项卡,所有其他选项卡都不会被渲染,因为我在每个选项卡上使用UpdatePanel(在.ascx控件上)选择选项卡后,updatepanel会进行异步回发以加载选定选项卡的内容。

在我的一个标签上我使用来自obout.com的组合框控件,它不起作用。 现在我知道为什么它不起作用。它不起作用,因为控件是通过部分页面刷新显示的,但为了正确显示控件,它必须做一些“魔术” - 在页面上注册一些.css和.js包含(在头部我猜)....但是因为我通过异步页面刷新来加载这个控件...它不能做这些事情。

你建议做什么样的工作? 谢谢!

2 个答案:

答案 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控件的解决方案。