2012-04-02 65 views
1

我试图向ASP.NET中的CheckBoxList中添加不同的列表项目(具有不同的颜色属性),项目被正确添加到列表中颜色。但是,在部分更新(它位于更新面板中)时,所有属性都消失了。无法在ASP.NET列表框上保留CSS元素项目

有关如何解决这个问题的任何想法? (这只是一个视图状态的问题?)

这是我如何添加元素的检查列表框

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

的感谢!

+0

你是如何添加元素的?客户端通过JavaScript?在代码后面?你如何将CSS样式应用于项目? – saluce 2012-04-02 18:01:12

+0

我使用的代码背后,手动添加属性...我已经用代码片段更新了问题 – aggietech 2012-04-02 18:04:17

回答

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)的响应所取代。在异步回发的情况下,我假定你的CheckedListBox在更新面板中。在异步模式期间页面回发时,样式将被最新的CheckedListBox HTML从服务器删除,样式实现将在新的请求再次发生。最好将数据存储在ViewState中,并将其分配到异步回发中。

+0

好 - 这是我所怀疑的,并打开“启用视图状态”属性不起作用。 我将使用自定义实现,然后恢复(在加载或数据绑定时)CSS值,除非您知道处理此问题的更好方法。 – aggietech 2012-04-02 19:10:32