2011-12-28 8 views
2

私は自分のWebページでAJAXコンボボックスを利用しています。このページでは、約5種類のタブページを含むタブコントロールも使用されています。コンボボックスは、最初のタブにあり、UpdatePanelの内側にあります。他のタブページの1つには、UpdatePanelの中​​にあるカスタムカレンダーコントロールがあります。最初のタブページにAJAXコンボボックスを追加するまで、カレンダーは正常に機能していました。カレンダーに項目を追加すると、データが自動的に更新されます。AJAX Combobox Issue

ただし、カレンダーにアイテムを追加すると、リフレッシュ(カレンダーの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を持っています)であったからです。

ここに何か不足していますか?助けてください! ありがとう

+0

ここに実際のポストバックデータを投稿できますか?フィドラーや火かき棒のようなものでそれをつかむ。また、ローカリゼーションは、CultureInfoが常に同じように正しく設定されていますか?これは、数値や日時解析に問題を引き起こす可能性があります。また、一部の必須フィールドは部分的なポストバック中に正しく埋められないため、例外が発生します。 –

+0

PostBackデータから正確に見たいものは何ですか?フィドラーを使用するので、私はすべて何をコピーするか分からない。また、CultureInfoはプロジェクト全体で1回だけ設定され、カレンダー項目を追加するときに選択する日付範囲の集まりになります(en-usに設定)。 – Encryption

答えて

0

ここでは、ComboBoxを含む更新パネルのUpdateModeプロパティを設定していないため、デフォルトでUpdateModeの値が「Always」であるため、カレンダーの更新パネルが更新されるたびに更新されています"

だから私の意見では、あなたがこの

UpdateMode="Conditional" 

のようなあなたのコンボボックスの更新パネルのプロパティを設定する必要があり、その後、あなたはあなたの条件

  1. セット更新に応じて、2つのもののいずれかをしなければなりませんパネルのプロパティ

    ChildrenAsTriggers = "true" を

  2. すべての処理の後、コードからUpdateパネルの "Update"メソッドを明示的に呼び出します。

    Tab1UpdatePanel.Update();

+0

更新モードは、すべてのUpdatePanelに対して条件付きに設定されていました。 AJAXのコンボボックスにはバグがあるようですので、別の解決策を思いつきました。 – Encryption