【发布时间】:2016-10-07 20:22:43
【问题描述】:
我正在针对具有单个 int 主键的表创建一个带有模型绑定的 GridView。
<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/ComboBoxes,不使用键 ID 做任何事情。)
什么会导致键值无法显示在 UpdateMethod 中?
【问题讨论】:
标签: asp.net gridview model-binding