我的复选框有问题。例如,我有这个 aspx 的代码
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" runat="server">
<asp:CheckBox ID="chkActive" AutoPostBack="True" OnCheckedChanged="Active_OnCheckedChanged" runat="server"></asp:CheckBox>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
</asp:Content>
在服务器端,当检查 chkActive 时,我有两个呈现的控件:
- ctl00$MainContent$chkActive
- ctl00$MainContent$txtName
当未选中 chkActive 时,我只有一个渲染控件:
- ctl00$MainContent$txtName
所以我不能将该复选框的状态写入数据库。作为记录,我使用了带有动态对象的 SaveData 函数,并且 chkActive 在未选中时消失了,因此该函数找不到它。即使未选中复选框,任何想法都会出现?谢谢。
PS:“消失”表示未选中时它不再位于 Request.Form 中。
编辑:
我的 SaveData 函数:
public void SaveDate<T>(T entity, NameValueCollection attributes)
{
PropertyInfo[] properties = typeof(T).GetProperties();
foreach (PropertyInfo property in properties)
{
if (attributes.AllKeys.Any(key => key.Contains("$" + property.Name)))
{
//
}
}
}
para 属性来自 Request.Form,因为复选框不在 Request.Form 中,所以我不知道如何处理它。如果选中复选框,此功能效果很好