Я относительно новичок в .net c#
. Я просто возился с grid view
и застрял в той части, где мне нужно передать данные из textbox
в gridview
в column in the gridview
. Я написал код в RowUpdating
.
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
using (SqlConnection sqlcon = new SqlConnection(strConnection))
{
sqlcon.Open();
TextBox txtname = Grid1.Rows[e.RowIndex].FindControl("TextBox1") as TextBox;
String val_comment = txtname.Text;
int id = Convert.ToInt16(Grid1.DataKeys[e.RowIndex].Values["id"].ToString());
SqlCommand cmd = new SqlCommand("update dbo.[2KEE_RAW] set comment=@comment where id=@id", sqlcon);
cmd.Parameters.AddWithValue("comment",val_comment);
cmd.Parameters.AddWithValue("id", id);
int i = cmd.ExecuteNonQuery();
Grid1.EditIndex = -1;
sqlcon.Close();
BindData();
}
}
Я получаю исключение о том, что txtname равно null . В чем здесь проблема?
Вот код .apsx:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView runat="server" ID="Grid1" AutoGenerateColumns="False" BackColor="#DEBA84"
BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="id"
AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting" OnRowCancelingEdit="GridView1_RowCancelingEdit"
CellSpacing="2">
<Columns>
<asp:BoundField HeaderText="Account ID" DataField="Account ID"></asp:BoundField>
<asp:BoundField HeaderText="Amount" DataField="Actuals - CY ITM Local"></asp:BoundField>
<asp:BoundField HeaderText="Company Code" DataField="Company Code"></asp:BoundField>
<asp:BoundField HeaderText="Comment" DataField="Comment" />
<asp:TemplateField HeaderText="Enter Comment">
<ItemTemplate>
<input runat="server" type="text" id="TextBox1" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>