8

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

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

3 回答 3

23

我认为当你推送更新链接Gridview在获取新值之前再次绑定。你必须使用if(!IsPostBack)之前GridView.DataBind()

于 2012-11-20T17:55:58.157 回答
3

只需将 Enableviewstate 属性设置为 gridview 的 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" >
于 2017-03-20T13:07:43.513 回答
0

GridView1.Rows[GridView1.EditIndex]当您已经拥有当前行时,为什么还要再次调用?尝试使用您已经检索到的行

GridViewRow row = GridView1.Rows[e.RowIndex];
Label1.Text = ((TextBox) row.Cells[2].Controls[0]).Text;

阅读更多关于这个

于 2012-11-20T18:13:58.093 回答