我正在构建一个复选框列表并在代码中对其进行更改,以便使用 jquery 将结果过滤到客户端。
此代码在数据绑定事件中运行:
foreach (ListItem item in checkBoxList.Items)
{
foreach (object dataItem in sdsOutsideReports.Select(DataSourceSelectArguments.Empty))
{
if (Convert.ToInt16(DataBinder.GetPropertyValue(dataItem, "AttributeID")) == Convert.ToInt16(item.Value))
{
item.Attributes.Add("Requirement"
, DataBinder.GetPropertyValue(dataItem, "AttributeDataType").ToString()
);
}
}
}
不幸的是,结果是一个包含在跨度中的复选框列表。该跨度具有已填写的“要求”属性。不管怎样,这似乎就是 .net 的做法:
<span requirement="TypeRequirement">
<input id="ctl00_ContentPlaceHolder1_cblPrerequisites_11" type="checkbox" name="ctl00$ContentPlaceHolder1$cblPrerequisites$11">
<label for="ctl00_ContentPlaceHolder1_cblPrerequisites_11">Final Exam</label>
</span>
但是,当我尝试访问回发复选框的属性集合以与某些项目进行不同的交互时,我没有得到任何属性!
此代码因空引用而失败:
String Test;
foreach (ListItem SelectedItem in checkBoxList.Items)
{
if (SelectedItem.Selected) {
Test = SelectedItem.Attributes["requirement"].ToString();
}
}
我进行了属性检查,没有与此复选框列表相关的属性。
我有什么办法来解决这个奇怪的问题?