问题
我有一个ButtonColumn
编辑这样定义的行:
<asp:ButtonColumn DataTextField="job_code" ButtonType="LinkButton" HeaderText="Job Code"
CommandName="edit"></asp:ButtonColumn>
在我的OnItemCommand
处理程序中,DataGrid
我有这个代码:
If e.CommandName = "edit" Then
Dim o As ListDataModel = CType(e.Item.DataItem, ListDataModel)
If o Is Nothing Then
Exit Sub
End If
...
End If
但e.Item.DataItem
在null
这里。
我查看了相关问题并验证了以下内容:
ItemType
ofe.Item
设置为,因此ListItemType.Item
应该允许容纳DataItem
. 这也符合MSDN 文档。- 我利用了数据绑定- 请参阅下面的代码部分。
- 我已经设置了这样的
DataKeyField
属性asp:DataGrid
:DataKeyField="job_code"
.
数据绑定代码(发生在 Search 方法中)
Using reader As SqlDataReader = cmd.ExecuteReader()
Dim list As List(Of ListDataModel) = New List(Of ListDataModel)
While reader.Read()
list.Add(New ListDataModel With
{
...
})
End While
dgSearchResults.DataSource = list
dgSearchResults.DataBind()
End Using
现在,该Search
方法是按钮的onserverclick
事件处理程序。input
该流程将让用户搜索结果,然后单击其中一个命令按钮来编辑该行,因此当处理程序被触发时,该Search
方法将不会运行。OnItemCommand