チェックボックスに問題があります。たとえば、私はこの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 がチェックされている場合、2 つのレンダリングされたコントロールがあります。
- ctl00$MainContent$chkActive
- ctl00$MainContent$txtName
chkActive がチェックされていない場合、レンダリングされたコントロールは 1 つだけです。
- 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)))
{
//
}
}
}
チェックボックスがRequest.Formになくなったため、para属性はRequest.Formからのものであるため、処理方法がわかりません。この機能は、チェックボックスがチェックされている場合にうまく機能します