2012-04-02 8 views
1

ASP.NETのCheckBoxListに異なるリスト項目(異なる色属性を持つ)を追加しようとしていますが、項目が正しくリストに正しく追加されました色。しかし、部分的な更新(更新パネルにあります)では、すべての属性はなくなりました。ASP.NETリストボックスにCSS要素を永続化できないitems

これを修正する方法についてのご意見はありますか? (これは単なるビューステートの問題です?)

これは私が

ListItem newItem = new ListItem(strText); 
if(condition) 
newItem .Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "orange"); 
checkListBoxList.add(newItem); 
updatePanelListBox.update(); 

おかげで、チェックリストボックスに要素を追加する方法です!

+0

どのように要素を追加していますか? JavaScript経由でクライアントサイド?コードビハインドで?どのようにアイテムにCSSスタイルを適用していますか? – saluce

+0

私はコードを使用して手動で属性を追加しています...そして、コードスニペットで質問を更新しました – aggietech

答えて

1

ご存じのように、ページポストバック時に、HTMLはIISによってクライアントに送信された応答で置き換えられます(Client -> IIS WebServer -> ISAPI Extensions -> ISAPI load it/Execute it and send back the converted HTML -> Sends to IIS - > IIS sends back to Client)。 Async PostBackの場合は、CheckedListBoxがUpdate Panel内にあると仮定します。非同期モードでのページポストバック時に、スタイルはサーバーからの最新のCheckedListBox HTMLによって削除され、スタイルの実装は新しいリクエスト中に再び行われます。 ViewStateにデータを格納し、非同期ポストバックにデータを割り当てる方がよいでしょう。

+0

ok - これは私が疑っているもので、 "有効なビューステート"プロパティも有効ではありません。 これを処理するためのより良い方法がわからない限り、カスタム実装を行ってからCSS値を復元する(ロード時またはデータバインド時のどちらかで)。 – aggietech

関連する問題