我有一个GridView就这样:ASP.NET - Gridview RowDeleting事件上没有Datakey!
<asp:GridView ID="gvwStudents" runat="server"
AutoGenerateColumns="False" DataKeyNames="ID"
ShowHeader="False" onrowdeleting="gvwStudents_RowDeleting">
<Columns>
<asp:BoundField DataField="FirstName" />
<asp:BoundField DataField="LastName" />
<asp:BoundField DataField="Email" />
<asp:CommandField ShowDeleteButton="True" DeleteText="Remove" />
</Columns>
</asp:GridView>
这里是我如何创建我的DataTable,该GridView控件绑定到,让你知道我处理什么数据:
private DataTable MakeStudentsTable()
{
DataTable students = new DataTable();
DataColumn ID = students.Columns.Add("ID", typeof(int));
ID.AutoIncrement = true;
DataColumn firstName = students.Columns.Add("FirstName", typeof(string));
DataColumn lastName = students.Columns.Add("LastName", typeof(string));
DataColumn email = students.Columns.Add("Email", typeof(string));
return students;
}
为什么哦,为什么没有在RowDeleting事件的EventArgs中传递键?我需要从ADO.NET DataTable中删除记录,这些记录是在触发此事件时保留在会话状态中的。
为什么不能正常工作? DataKeys仅在使用DataSource控件时才起作用吗?
我想你应该在这个问题上加上“databinding”标签。 顺便说一句,我一直在抨击我的头在完全相同的问题。 – 2009-02-25 07:01:39
你如何将学生添加到你的桌子?在调用Deleting方法之前(即在Page_Load中)数据是否填充到表中? – cjk 2009-02-25 11:50:45