CHeckboxList动态更新和样式化

时间:2010-01-19 16:50:46

标签: c# .net asp.net user-controls

当从GridView中选择一行时,我正在动态添加项目。

1. How can i make the items added are selected by default - (solved) 
2. How can i avoid duplicates getting added to list 
3. How can i remove them from list when user un-checks them.

我想用图像更改复选框,我正在使用css,但它不能正常工作

.cbxCustom
{
...
}
.cbxCustom tr td checkbox
{
....
}

 <asp:CheckBoxList ID="cbl1" runat="server" AutoPostBack="true"
   OnSelectedIndexChanged="cbl1_OnSelectedIndexChange"     
   CssClass="cbxCustom">                                
 </asp:CheckBoxList>

1 个答案:

答案 0 :(得分:0)

通过将项目保留在列表中并在添加项目之前,可以避免重复项,检查是否有lst.Contains(itemName)。如果是,请不要添加它。

从列表中删除它们有点问题,因为它取决于你想要进入它的深度。我假设您不希望每次单击复选框都有PostBack。如果你想要一个PostBack,你需要一种方法将你的复选框和信息列表序列化到ViewState中的一个控件中。由于您在代码隐藏中动态添加此列表,我建议使用一个不可见的Literal,其作用只是保存一个包含数据的序列化字符串。

如果你不想要PostBack,你需要使用大量的JavaScript来修改CheckBoxList输出的表的InnerHTML。同样,如上所述,我使用Literal或一些ViewState管理的不可见控件来序列化状态。在这种情况下,文字不起作用,但是可能。