在GridView中得到修改后的值

本文介绍了ASP.NET中GridView控件的RowUpdating事件处理方法,包括如何获取更改后的值及两种实现方式。此外还提供了RowEditing和RowCancelingEdit方法的示例。

      得到更改后的值需要用到RowUpdating方法。

 

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {

//方法1
        var row = GridView1.Rows[e.RowIndex];

        for (int a = 0; a < row.Cells.Count - 2; a++)
        {
            GridView1.Columns[a].ExtractValuesFromCell(e.NewValues, row.Cells[a] as DataControlFieldCell, DataControlRowState.Edit, true);
             Response.Write(e.NewValues[a]+“<br>”);//取得每列更改后的值
        }

//这种方法无论是用的BoundField或者TemplateField都可以。

 

//方法2
        for (int i = 0; i < row.Cells.Count - 2; i++)
        {
               TextBox txt = row.Cells[i].Controls[1] as TextBox;

               Response.Write(txt.Text+“<br>”);//取得每列更改后的值

              // string name = ((TextBox)row.Cells[i].FindControl("txtName")).Text; //也可以这样得到修改后的值
        }

    }
//我用的是 TemplateField绑定数据项,我用的TextBox在<EditItemTemplate>也可以用其它控件

//<Columns>
//            <asp:TemplateField HeaderText=“ID">
//                  <ItemTemplate>
//                        <asp:Label ID="lblID" runat="server" Text='<%# Bind("ID")%>'></asp:Label>
//                   </ItemTemplate>
//                    <EditItemTemplate>
//                        <asp:TextBox ID="txtID" runat="server" Text='<%# Bind("ID")%>'></asp:TextBox>
//                    </EditItemTemplate>
//             <ControlStyle Width="50px" />
//             <ItemStyle Width="50px" />
//             </asp:TemplateField>

//</Columns>


--------------------------------------------------------结束分割线--------------------------------------------------------------------------------

 

我是在页面加载的时候 就显示GridView

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            GridViewBind();
        }
    }

做的时候我忘了加if (!Page.IsPostBack),总是修改不了,e.NewValues[key]=e.OldValues[key],后来想想可能是点更新的时候会回传一次页面,就会用Page_Load的方法,写在这里算是给自己加深影响了。

随便放上RowEditing、RowCancelingEdit方法

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
            this.GridView1.EditIndex = e.NewEditIndex;
            GridViewBind(); // 数据绑定方法
      }

 

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值