|
我用gridview现实一个表,现在要更新表中的数据,自己定义了update的函数。。
<asp:BoundField HeaderText="No" DataField="DateId" ReadOnly="True" />
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<%# Eval("WDate")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="WDate" Text='<%# Eval("WDate")%>' runat="server" Width="140px" />
</EditItemTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>
然后我更新的地方
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = (int)GridView1.DataKeys[e.RowIndex].Values[0];
string date = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("WDate")).Text;
string wdescription = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("WDescription")).Text;
string status = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("Status")).Text;
UpdateRecords();//这个是更新的函数。
GridView1.EditIndex = -1;
BindGrid();
}
运行的时候说我
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
问题就是第一行:int id = (int)GridView1.DataKeys[e.RowIndex].Values[0];
怎么办啊?高手请指教啊。。 |
|