GridView RowUpdating无法获取新值

时间:2012-11-20 17:33:57

标签: asp.net gridview

我只是在测试我是否会在没有运气的情况下更新文本框中的更改值。我不能得到新的价值。我究竟做错了什么?我尝试过很多东西。这是最新的一个。如何将更新的新值添加到我的标签中?当我单击网格上的编辑并更改文本框的值并单击更新时,标签将只显示文本框的原始值。

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();
}

3 个答案:

答案 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;

Read more on this