【问题标题】:AJAX Combobox IssueAJAX 组合框问题
【发布时间】:2012-01-29 08:32:41
【问题描述】:

我在我的网页上使用 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)

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

我在这里遗漏了什么吗?请帮忙! 谢谢

【问题讨论】:

  • 你能在这里发布实际的 PostBack 数据吗?用 Fiddler 或 firebug 之类的东西抓住它。此外,本地化、CultureInfo 是否始终正确设置为相同?这可能会导致数字或日期时间解析出现问题。还有一个想法:在部分 PostBack 期间,一些必填字段没有正确填写,导致异常。
  • 您究竟想从 PostBack 数据中看到什么?使用提琴手,所以我不确定要复制什么。此外,CultureInfo 在整个项目中仅设置一次,并且恰好在添加日历项时选择的日期范围的人口中(设置为 en-us)。

标签: c# asp.net ajax


【解决方案1】:

我在这里怀疑的是,您没有设置包含 ComboBox 的更新面板的 UpdateMode 属性,因此每次更新日历更新面板时都会更新它,因为默认情况下 UpdateMode 的值为“始终”。

所以在我看来你必须像这样设置你的 ComboBox 更新面板属性

UpdateMode="Conditional"

然后你必须根据你的要求做这两件事中的任何一件

  1. 设置更新面板的属性

    ChildrenAsTriggers="true"

  2. 在您完成所有处理后,从您的代码中显式调用更新面板的“更新”方法。

    Tab1UpdatePanel.Update();

【讨论】:

  • 更新模式设置为所有更新面板的条件。 AJAX 组合框中似乎有一个错误,所以我们只是想出了一个不同的解决方案。
猜你喜欢
  • 1970-01-01
  • 2011-03-30
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多