ASP.NET(GridView):GridView1.Rows [e.RowIndex] .Cells [1] .Text返回原始值而不是我刚刚输入的值

时间:2011-07-29 05:45:03

标签: asp.net gridview webforms

编辑方法:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
        }

更新方法:

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int _selectedRowIndex = e.RowIndex;
        int _ameintyId = (int)GridView1.DataKeys[_selectedRowIndex].Value;
        string updatedAmenity = GridView1.Rows[_selectedRowIndex].Cells[0].Text;
    }

NB:我注意到一个奇怪的事情,当我点击编辑它重新加载页面但不会编辑该行,所以我再次点击它并且它工作..这种情况每次发生,它不是一个例外或其他什么!

修改

首先我正在使用一个BoundField ..我发现当我添加一个DataKey时,它为它创建了一个新的字段,即ID,导致问题的原因!所以我只是将0更改为1 ..但是现在我遇到了一个问题,即单元格Text属性返回原始值而不是新值!

2 个答案:

答案 0 :(得分:2)

第一期: 获取我刚输入的值而不是原始值

更新方法:使用e.NewValues属性

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int _selectedRowIndex = e.RowIndex;
        int _ameintyId = (int)GridView1.DataKeys[_selectedRowIndex].Value;
        string updatedAmenity = e.NewValues[0].ToString();
    }

第二期: 点击两次以使编辑按钮生效

编辑方法:我刚刚调用了绑定网格的方法

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        AmenitiesGridDataBind();
    }

感谢您提供帮助=)

答案 1 :(得分:0)

string updatedAmenity = e.NewValues[0].ToString();