我有checkBoxList控件,我在其中动态添加列表项。我在创建时将样式应用于某些列表项。但是,在运行时,当我选择任何列表项时,所有应用了样式的列表项都会失去它们的样式。我该如何解决?
foreach (Group group1 in groups)
{
if (wObj.Id== id.ToString())
{
ListItem li = new ListItem(wObj.GroupName,wObj.ID.ToString());
li.Attributes.Add("Style", "padding-left: 25px;");
chkBoxListWorkGroups.Items.Add(li);
}
}
在选定的索引事件上,我只是检查一些条件并标记列表项已选中。但问题是风格迷失了吗?我的意思是删除所有控件的填充?我该如何解决?
答案 0 :(得分:2)
这实际上取决于您在page life cycle实施Checkboxlist的方式和时间,这可能是由于多种原因造成的。虽然,大部分时间都是因为当页面在" SelectedIndexChanged"之后重新加载时发生。事件被触发,除非您重新生成/数据绑定您的Checkboxlist属性,否则您的动态Checkboxlist将丢失其ListItem信息。
因此,您可能希望在页面加载中添加以下内容:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
DataBinding_Method_YouWillWrite();
}
}
对于数据绑定方法,一个选项可以是使用Viewstates在Checkboxlist中的特定索引处存储/加载正确的属性。您可以尝试的另一个选项是在每次加载页面时重新生成Checkboxlist,您只需要确保您的Checkboxlist在页面加载时加载任何已检查的列表项(也可以通过使用Viewstates来完成)。这实际上取决于您如何实现代码,有很多不同的方法可以解决这个问题。