私はモデルバインディングを使用して、単一のint主キーを持つテーブルに対してGridViewを作成しています。ASP.NETモデルバインディング:UpdateMethodがデータキーを受け取っていません
<asp:GridView ID="gvTimesheet" runat="server" AutoGenerateColumns="false"
ItemType="BO.TimeSheet" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true"
DataKeyNames="TimeSheetID"
SelectMethod="gvTimesheet_GetData" UpdateMethod="gvTimesheet_UpdateItem"
OnRowDataBound="gvTimesheet_RowDataBound">
<Columns>
... // Note: TimeSheetID is NOT one of the columns here
SelectMethodが正常に動作しますが、UpdateMethod
public void gvTimesheet_UpdateItem(int TimeSheetID) {
は常にIDの値は0になります。パラメータの名前は、キーのモデルオブジェクトのプロパティと正確に一致するDataKeyNamesと一致します。すべてが正しいように見えます。
私はキーを非表示のBoundFieldとして追加しようとしましたが、それは何の違いもありませんでしたので削除しました。これは、DataKeyNames内にあるだけで十分です。
(RowDataBoundハンドラだけで、いくつかの他のフィールドのためのDropDownLists /コンボボックスのカップルを移入し、キーIDと全く何もしません。)
UpdateMethodに表示するためのキー値は失敗するだろう何?