In my code there is one gridview1 . While clicking on edit button getting error Object reference not set to an instance of an object. all my columns are template fields.id is the datakey. and I am able to fetch the datas from database too. What is wrong here. ?
protected void Edit_Button_Click(object sender, EventArgs e)
{
GridViewRow gr = (GridViewRow)((Button)sender).NamingContainer;
int id = Convert.ToInt32(GridView1.DataKeys[gr.RowIndex].Value);
cmd = new SqlCommand("select * from students where id = '"+id+"'",con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
TextBox name = (TextBox)GridView1.Rows[gr.RowIndex].FindControl("name_TextBox");
name.Text = "bhavin";
}
and this is my aspx page.
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="name_TextBox" runat="server" Text='<%# Eval("st_name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("st_name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
.
.
.
.
<asp:TemplateField HeaderText="Action">
<EditItemTemplate>
<asp:Button ID="Button3" runat="server" Text="Update" />
<asp:Button ID="Button4" runat="server" Text="Cancel" />
</EditItemTemplate>
<ItemTemplate>
<asp:Button ID="Edit_Button" runat="server" Text="Edit" OnClick="Edit_Button_Click" />
<asp:Button ID="Button2" runat="server" Text="Delete" />
</ItemTemplate>
</asp:TemplateField>