お客様が直接部品を注文できるウェブサイトを作成しています。データテーブルを設定していて、ユーザーがボタンをクリックすると、注文の詳細がグリッドビューに追加されます。グリッドビューで、編集ボタンと削除ボタンを有効にしました。削除機能は正常に機能しますが、情報を編集しようとしても、新しい情報でグリッドビューが変更されることはありません。これが私がこれまでに持っているものです:
protected void griditems_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataTable dt = (DataTable)Session["table"];
foreach (DataRow dr in dt.Rows)
{
part = Convert.ToString(dr["Part"]);
dr["Part"] = part;
dr["Quantity"] = qty;
dr["Ship-To"] = shipto;
}
griditems.EditIndex = -1;
BindData();
}
これを試みると、元の入力値でグリッドビューが表示されます。私もこれを試しました(機能せず、「位置0に行がありません」というエラーが表示されます:
DataTable dt = (DataTable)Session["table"];
GridViewRow row = griditems.Rows[e.RowIndex];
dt.Rows[row.DataItemIndex]["Part"] = ((TextBox)(row.Cells[1].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["Quantity"] = ((TextBox)(row.Cells[2].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["Ship-To"] = ((CheckBox)(row.Cells[3].Controls[0])).Checked;
griditems.EditIndex = -1;
BindData();
EditItemTemplate
aspxファイルにが欠落していますか、それともRowUpdating
すべて間違っていますか?