protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        this.GridView1.EditIndex = -1;
        this.bintNews();
        
        string newID = ((TextBox)this.GridView1.Rows[e.RowIndex].FindControl("t1")).Text.Trim();
        
        //string title = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].FindControl("textbox")).Text;
 
        //Response.Write(title);
        Response.Write(newID);
       
    }前台<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
                        ForeColor="#333333" GridLines="None" Height="148px" Width="584px" OnRowDataBound="GridView1_RowDataBound" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5">
                        
                        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#EFF3FB" />
                        <Columns>
                            <asp:BoundField DataField="ID" HeaderText="新闻编号" />
                            <asp:BoundField DataField="Title" HeaderText="标题" />
                            <asp:BoundField DataField="Content" HeaderText="内容" />
                            <asp:BoundField DataField="pubTime" HeaderText="发表时间" />
                            <asp:BoundField DataField="re" HeaderText="备注" />
                            <asp:BoundField DataField="Hits" HeaderText="点击数" />
                            <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
                            <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
                            <asp:TemplateField>
                                <ItemTemplate>
                                    &nbsp;
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="t1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Title") %>'></asp:TextBox>
                               
                                </EditItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                 
                        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <EditRowStyle BackColor="#2461BF" />
                        <AlternatingRowStyle BackColor="White" />
                    </asp:GridView>
问题:各位高手,怎么就是获取不到要编辑列的值啊。

解决方案 »

  1.   

    你绑定的时候设置DataKeysName="字段" 然后通过DataKeys取
      

  2.   

    高手, string newID = e.NewValues["Title"].ToString() ; 
    Response.Write(newID); 
    this.GridView1.EditIndex = -1; 
    this.bintNews(); 
    报错 :未将对象引用设置到对象的实例。
      

  3.   

    ui.UserName = ((TextBox)(this.GridViewUser.Rows[e.RowIndex].Cells[1].Controls[0])).Text.Trim();
      

  4.   

    string newID = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[].Contrils[])).Text.Trim(); 
      

  5.   

    请问你的问题是怎么解决的?
    我的问题和你的一样啊,我是做一个gridview,然后再页面上添加了一个按钮,要实现的功能是双击进行整行
    编辑,点击按钮完成更新,但现在的问题就是去不到新值,更新不了。大侠,助人为乐,请问你是怎么解决的?
      

  6.   

    问题:      当GridView编辑状态获取新值时,往往获取的是修改前的值。我的分析:       很多时候我把数据绑定函数调用直接放在Page_Load()函数里,当GridView编辑状态获取新值时,往往获取的是修改前的值,这是因为页面加载先执行page_load()函数,数据绑定函数就会再次执行,这样GridView里的值就会又变成修改前的值,获取值时就是更改前的值。解决办法:      把数据绑定函数放在Page_Load()函数的if(!this.page.ispostback)里,这样获取的值就是更改后的值。获取GridView单元格值办法:在RowUpdating事件里获取第一个单元格内容((TextBox)(GridView.Rows[e.RowIndex].Cells[1].Controls[0])).Text