我只是在测试我是否会在没有运气的情况下更新文本框中的更改值。我不能得到新的价值。我究竟做错了什么?我尝试过很多东西。这是最新的一个。如何将更新的新值添加到我的标签中?当我单击网格上的编辑并更改文本框的值并单击更新时,标签将只显示文本框的原始值。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bindgrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
Label1.Text = ((TextBox)(GridView1.Rows[GridView1.EditIndex]).Cells[2].Controls[0]).Text;
GridView1.EditIndex = -1;
bindgrid();
}
答案 0 :(得分:19)
我认为当您推送更新链接时Gridview
在获取新值之前再次绑定。您必须在if(!IsPostBack)
之前使用GridView.DataBind()
。
答案 1 :(得分:3)
只需将Gridview的Enableviewstate属性设置为false即可获得新值。
<asp:GridView runat="server" EnableViewState="False" ID="GridView6" AutoGenerateColumns="false" Width="100%"
EmptyDataText="No Record Found" AllowPaging="false" PageSize="10" OnPageIndexChanging="ChangePage"
OnRowCommand="RowCommand" OnRowDataBound="GridView6_RowDataBound" >
答案 2 :(得分:0)
为什么在已有当前行时再次调用GridView1.Rows[GridView1.EditIndex]
?尝试使用已检索的行
GridViewRow row = GridView1.Rows[e.RowIndex];
Label1.Text = ((TextBox) row.Cells[2].Controls[0]).Text;