动态控制复选框列表丢失样式后选定的索引事件- ASP.净c#

本文关键字:事件 索引 ASP 列表 复选框 样式 动态控制 | 更新日期: 2023-09-27 18:06:09

我有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);
     }
}

在选定的索引事件上,我只是检查一些条件并标记列表项为已检查。但问题是风格正在消失?我的意思是所有控件的填充都被删除了?我该怎么修理它?

动态控制复选框列表丢失样式后选定的索引事件- ASP.净c#

这实际上取决于您在页面生命周期中如何以及何时实现Checkboxlist,这可能是由于多种原因。虽然,大多数情况下,这是因为当页面在"SelectedIndexChanged"事件被触发后重新加载时,你的动态复选框列表将失去它的ListItem信息,除非你重新生成/数据绑定你的复选框列表属性。

那么,你可能想在你的页面加载中添加这样的内容:

protected void Page_Load(object sender, EventArgs e)
{
    if(!Page.IsPostBack)
    { 
        DataBinding_Method_YouWillWrite(); 
    }
}

对于数据绑定方法,一个选项可以是使用Viewstates在Checkboxlist的特定索引处存储/加载正确的属性。您可以尝试的另一个选项是在每次页面加载时重新生成Checkboxlist,您只需要确保Checkboxlist在页面加载时加载任何已选中的列表(这也可以通过使用Viewstates来完成)。这真的取决于你如何实现你的代码,有很多不同的方法可以做到这一点。