ASP.Net:
<asp:GridView id ="sampleGridView" AutoGenerateEditButton ="True" OnRowEditing ="sampleGridView_RowEditing" OnRowCancelingEdit ="sampleGridView_RowCancelingEdit" OnRowUpdating ="sampleGridView_RowUpdating" runat ="server"></asp:GridView>
Code for:
public partial class _Default : System.Web.UI.Page { private DataTable dt = new DataTable("SampleTable"); protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack){ PopulateGridView(); } } private void PopulateGridView() { dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Desgnation", typeof(string)); dt.Columns.Add("City", typeof(string)); for (int i = 0; i < src.GetLength(0); i++) { dt.Rows.Add(src[i, 0], src[i, 1], src[i, 2]); } sampleGridView.DataSource = dt; sampleGridView.DataBind(); } protected void sampleGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) { GridViewRow row = sampleGridView.Rows[e.RowIndex];
System.IndexOutOfRangeException: there is no row at position {Row Number} say 2. this is an error in sampleGridView_RowUpdating in the row
dt.Rows[row.DataItemIndex]["Name"] = ((TextBox)(row.Cells[1].Controls[0])).Text;
I tried the following code, commenting out the error code above
Response.Write(dt.Columns.Count+" "+dt.TableName);
Output:
0 SampleTable
Why is access to data impossible?
source share