0

ここで何が間違っているのかを理解するのに非常に苦労しています。Edit Item Template には、ドロップダウン リストに次のコードがあります。

<asp:DropDownList ID="dd_is_active" runat="server" AppendDataBoundItems="true"
 DataValueField="Enabled">
 <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
 <asp:ListItem Text="No" Value="0"></asp:ListItem>
 </asp:DropDownList>
 <asp:HiddenField ID="is_activeTextBox" runat="server" Value='<%# Bind("Enabled") %>' />

ここに私のaspx.csコードがあります:

 protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
    e.Values["SUB_last_modified_date"] = DateTime.Now.ToString();
    e.Values["SUB_last_modified_by_user_id"] = HttpContext.Current.User.Identity.Name;
    e.Values["SUB_last_modified_by_user_name"] = Session["UserName"].ToString();
    e.Values["Enabled"] = ((DropDownList)(sender as ListView).InsertItem.FindControl("dd_is_active")).SelectedValue;
    e.Values["Category_ID"] = ((DropDownList)(sender as ListView).InsertItem.FindControl("dd_category")).SelectedValue;
}
protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
    e.NewValues["SUB_last_modified_date"] = DateTime.Now.ToString();
    e.NewValues["SUB_last_modified_by_user_id"] = HttpContext.Current.User.Identity.Name;
    e.NewValues["SUB_last_modified_by_user_name"] = Session["UserName"].ToString();

}

.cs コードに何かが欠けているか、html コードで 1 と 0 の値が正しくバインドされていないようです。これとまったく同じコードがアイテム テンプレートの挿入で機能しますが、更新 (またはアイテム テンプレートの編集) は正しく機能しません。

テーブル内の項目を編集しようとすると、入力文字列の形式が正しくないというエラーが表示されます。「はい」または「いいえ」のテキストをバインドしようとしていることはわかっていますが、「0」または「1」のいずれかの値を指定する必要があります。どんな助けでも大歓迎です!

4

1 に答える 1