我正在构建一个复选框列表并在代码中对其进行更改,以便使用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>
但是当我尝试访问回发中的复选框的属性集合以与其他项目进行交互时,与其他项目不同,我没有属性!
此代码以null引用失败:
String Test;
foreach (ListItem SelectedItem in checkBoxList.Items)
{
if (SelectedItem.Selected) {
Test = SelectedItem.Attributes["requirement"].ToString();
}
}
我进行了财产检查,没有与此复选框列表相关的属性。
我有什么方法可以解决这种怪异问题?