【发布时间】:2012-09-03 07:10:47
【问题描述】:
我的复选框有问题。比如我有这个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 消失了,因此该函数找不到它。即使未选中复选框,任何想法都会出现?谢谢。
P.S:“消失”表示未选中时不再出现在 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 中,所以我不知道如何处理。如果选中复选框,此功能可以正常工作
【问题讨论】:
-
您所说的“消失”是指它不在 Postback 的
Request.Form集合中吗? -
@ChrisGessler:是的,确切地说,未选中时它不再位于 Request.Form 中。任何想法?谢谢
-
不在 Request.Form 中与正在呈现的控件无关。向我们展示正在生成的 HTML。
标签: c# asp.net web-applications