• GridView怪问题,更新时读取不到编辑后的值


    修改:真是好久不用.NET,都给忘了,是个基本问题,应该在Page_Load事件里改动一下,不然回传时也绑定数据就会把编辑后的给改回数据库中值了:
    protected void Page_Load(object sender, EventArgs e)
    {
    if(!IsPostBack){
        BindGridView();
    }

    }



        用GridView读取数据都没问题了,很奇怪的是当我用更新时,RowUpdating事件中获取控件值不成功,取到的是编辑以前的值,这样的话还怎么更新呀。怪了,弄一天了,没找到原因,各种方法都试过,慢慢弄了,代码如下:

     

     1using System;
     2using System.Data;
     3using System.Configuration;
     4using System.Collections;
     5using System.Web;
     6using System.Web.Security;
     7using System.Web.UI;
     8using System.Web.UI.WebControls;
     9using System.Web.UI.WebControls.WebParts;
    10using System.Web.UI.HtmlControls;
    11using System.Data.OleDb;
    12
    13public partial class GridView : System.Web.UI.Page
    14{
    15    private string strConn = ConfigurationManager.ConnectionStrings["CONNECTACCESS"].ConnectionString;
    16    protected void Page_Load(object sender, EventArgs e)
    17    {
    18        BindGridView();
    19    }

    20    protected void myGrid_SelectedIndexChanged(object sender, EventArgs e)
    21    {
    22       
    23    }

    24    protected void myGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
    25    {
    26        myGrid.PageIndex = e.NewPageIndex;
    27        BindGridView();
    28    }

    29    protected void myGrid_RowEditing(object sender, GridViewEditEventArgs e)
    30    {
    31        myGrid.EditIndex = e.NewEditIndex;
    32        BindGridView();
    33    }

    34    protected void myGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
    35    {
    36        GridViewRow myGVR = myGrid.Rows[myGrid.EditIndex];
    37        OleDbConnection myConn = new OleDbConnection(strConn);
    38        string strSQL = "UPDATE STUREG SET LJ='"
    39            + ((TextBox)(myGrid.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',XM='"
    40            + ((TextBox)(myGrid.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' WHERE XH='"
    41            + myGrid.DataKeys[e.RowIndex].Value.ToString() + "'";
    42        OleDbCommand myCMD;
    43        try
    44        {
    45            myConn.Open();
    46            myCMD = new OleDbCommand(strSQL, myConn);
    47            myCMD.ExecuteNonQuery();
    48        }

    49        catch (OleDbException myOLEDBe)
    50        {
    51            Response.Write(myOLEDBe.Message.ToString());
    52        }

    53        finally
    54        {
    55            Response.Write("<br>" + strSQL);
    56            myConn.Close();
    57            myGrid.EditIndex = -1;
    58            BindGridView();
    59        }

    60    }

    61    protected void myGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    62    {
    63        myGrid.EditIndex = -1;
    64        BindGridView();
    65    }

    66    private void BindGridView()
    67    {
    68        OleDbConnection myConn = new OleDbConnection(strConn);
    69        string strSQL = "SELECT * FROM STUREG ORDER BY LJ,XH";
    70        OleDbDataAdapter myDA;
    71        DataSet myDS = new DataSet();
    72        try
    73        {
    74            myConn.Open();
    75            myDA = new OleDbDataAdapter(strSQL, myConn);
    76            myDA.Fill(myDS, "STU");
    77            myGrid.DataSource = myDS.Tables["STU"];
    78            myGrid.DataKeyNames = new string[] "XH" };
    79            myGrid.DataBind();
    80        }

    81        catch (OleDbException myOLEDBe)
    82        {
    83            Response.Write(myOLEDBe.Message.ToString());
    84        }

    85        finally
    86        {
    87            myConn.Close();
    88        }

    89    }

    90}

    91
  • 相关阅读:
    jstl表达式判断字符or字符串相等的写法
    enctype="multipart/form-data导致request获取不到数据
    Mac下解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    单源文件目录makefile
    默认生成的特殊函数
    为什么说switch比if快
    C++基本内置类型
    补码的原理及其应用
    CSS--浮动与定位
    CSS--字体
  • 原文地址:https://www.cnblogs.com/jcjks/p/983798.html
Copyright © 2020-2023  润新知