我正在使用网页上的AJAX组合框。该页面还使用一个标签控件,其中包含大约5个不同的标签页。组合框位于第一个选项卡上,并且位于UpdatePanel中。在其他选项卡页面之一上,我有一个自定义日历控件,该控件也位于UpdatePanel中。日历工作正常,直到我在第一个标签页上添加了AJAX组合框。将项目添加到日历时,将其设置为自动刷新其数据。

但是,现在,当我向日历中添加项目时,刷新(这将导致日历的UpdatePanel发生部分回发)只是挂起而从未完成。数据存储在数据库中,但日历从不刷新。这似乎与第一个标签页上的AJAX组合框直接相关。我的事件日志中出现错误:

Exception information:
Exception type: FormatException
Exception message: Input string was not in a correct format.
Stack trace:    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToInt32(String value, IFormatProvider provider)
at AjaxControlToolkit.ComboBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
at AjaxControlToolkit.ComboBox.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


有没有人看过这个或知道如何解决?我不希望组合框尝试重新加载数据,因为它与Calendar不在同一个UpdatePanel中(它具有自己的UpdatePanel),因为它应该只进行部分回发。

我在这里想念什么吗?请帮忙!
谢谢

最佳答案

我可以怀疑的是,您尚未设置包含ComboBox的更新面板的UpdateMode属性,因此每次更新日历更新面板时都会对其进行更新,因为默认情况下,UpdateMode的值为“始终”。

所以我认为您必须像这样设置ComboBox更新面板属性

UpdateMode="Conditional"


然后您必须根据自己的需要做两件事之一


设置更新面板的属性

ChildrenAsTriggers =“ true”
完成所有处理后,从代码中明确调用更新面板的“ Update”方法。

Tab1UpdatePanel.Update();

关于c# - AJAX组合框问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8659128/

10-15 16:27