2011-02-12 8 views
1

私はフレームワーク3.5でASP.NET Webフォームアプリケーションを管理しています。基本的にはアイテムのリストであり、アイテムの状態を示すチェックボックスです。ユーザーは、項目をいくつかの列のいずれかでソートできます。ポストバックの間に新しい項目が追加および削除されます。このリストはRepeaterでホストされ、アイテムテンプレートはusercontrolです。このページには、フレームワーク1.0から1.1から2.0から3.5にアップグレードされたアプリケーションであるため、マスターページはありません。 IIS6.1と7.5,32ビットと64ビットでホストされている場合、アプリケーションはこれを行います。それはそれ自身のアプリケーションプールにあり、プールには4つのスレッドがあります。リピータユーザーコントロールとビューステート

問題:チェックボックスが第3行目にチェックされ、位置1の項目がデータベース内で削除された場合、位置2に移動するはずです。移動しますが、チェックボックスはそのままですポジション3。行がソートされている場合、チェックされたチェックボックスはすべてその位置にありますが、残りの情報はソートされ、正しく表示されます(親タグのタイトルを含む)。

Viewstateは、ユーザーコントロールおよびユーザーコントロール内のチェックボックスで無効になっています。 pageディレクティブでページのキャッシュが無効になります。リピーターはページの読み込み時にバインドされます。 repeater.DataBindの直後にチェックする必要のあるリピーター内のコントロールの状態と、チェックボックスの状態が正しいことを確認しました。これは、ページロードイベントの最後の行です。フィドラーを使用して、レンダリングされたHTMLが正しくないことを確認しました。だから問題はレンダリングのどこかにあるようです。

これは私がこれを受け入れている限りです。アプリケーションはミッションクリティカルですが、このバグは非常に長い間存在していました。明らかに、このチェックボックスの状態はそれほど重要ではありませんでしたが、進化するビジネス要件のために問題になっています。

バグはありません。私はコードを投稿することができますが、それは大規模なアプリケーションの一部であるので非常に長いので、私は持っていません。

viewstateがPage_LoadとLoadCompleteの間にロードされているようです。データバインド後の値を確認し、LoadCompleteがこれを表示します。このような間違った時刻にviewstateがロードされる原因は何か。バグのように感じる。アプリケーションの1ページのみに影響します。私はviewstateがinitの後に移入され、OnInitの間にすべてのコントロールがロードされるべきだが、viewstateは望んでいないので、これは機能しないことが大丈夫です。

これはコントロールの種類とは関係ありません。私はちょうどhtmlinputcheckboxのためのasp:チェックボックスを交換し、その動作は持続しました。

EDIT:制御状態はこれと何か関係がありますか?私が知る限り、これを無効にすることはできません。

答えて

0

HtmlInputCheckBoxのasp:checkboxを削除した後、同じ問題が発生しました。私は問題が特にチェックボックスにあると判断し、偽のチェックボックスの画像を持つasp:ImageButtonと交換しました。

確かにわかりませんが、チェックボックスの状態は、制御状態の一部であり、表示状態ではありません。私にはMicrosoftのバグみたいですが、おそらくそれがこのコントロールの設計方法です。

+0

私はLinkBut​​ton + onclick/oncommandが(.NETフレームワークのバージョンによっては)いくつかのシステムでRepeaterで動作しない同様のケースを持っていましたが、ButtonはそれらすべてでOKでした – dc2009

関連する問題