我用gridview实现简单的数据显示,页面绑定数据源,通过一个BUTTOn查找数据,显示gridview的内容,查找出来的数据点击编辑总是自动跳转到未查找之前显示的gridview的行

解决方案 »

  1.   

    在你的觸發事件RowEditing中添加你的綁定的function就OK了。
      

  2.   

    查找的时候就是使用了个this.AccessDataSource1.SelectCommand ="SELECT  FROM [user]  WHERE  name like'%"+this.seachtbox.Text+"%'ORDER BY [id]";
    然后更新显示一下dridview,设置一个编辑,点击编辑,AccessDataSource1.SelectCommand 就变成了未查找之前的了,编辑的行就是未查找之前的行的行。
      

  3.   

    從來不用SqlDataSource控件
    建議自己寫function來綁定
    給你例子:
         public static readonly string connstr = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString();
        public static SqlConnection myconn = new SqlConnection(connstr);
        public static System.Data.SqlClient.SqlCommand mycomm;
        public SqlDataSource sqlds = new SqlDataSource();    //關閉鏈接
        public void sqlconn_Close()
        {
            if (myconn.State == ConnectionState.Open)
            {
                myconn.Close();
            }
        }    //打開數據庫鏈接
        public void sqlconn_Open()
        {
            if (myconn.State == ConnectionState.Closed)
            {
                myconn.Open();
            }
        }    //連接數據庫的一個sql 
        public void sqlcomm(string mysqlstring)
        {
            mycomm = new System.Data.SqlClient.SqlCommand();//mysqlstring, myconn
            mycomm.Connection = myconn;
            mycomm.CommandText = mysqlstring;
            mycomm.CommandType = CommandType.StoredProcedure;//如果用sql語句,此處改成CommandType.Text
            mycomm.Parameters.Clear();//parameters:參數
        }    //用戶信息查詢、顯示 create by czz 2008/9/17
        public DataSet User_List(string flag, string UserName)
        {
            try
            {
                sqlcomm("usp_Admin_User_List");//調用存儲過程,可改成sql語句
                mycomm.Parameters.AddWithValue("@flag", flag.Trim());
                mycomm.Parameters.AddWithValue("@UserName", UserName.Trim());            SqlDataAdapter da = new SqlDataAdapter(mycomm);
                DataSet ds = new DataSet();
                da.Fill(ds, "Admin_User_List");
                sqlconn_Close();
                return ds;
            }
            catch (Exception ee)
            {
                sqlconn_Close();
                return (DataSet)null;
            }
        } //用戶信息綁定 create by czz 2008/9/17
        public void gv_user_bind()
        {
            DataSet ds = new DataSet();
            ds = User_List("11", "");//獲取數據源
            if (ds == null)
            {
                gv_user.Visible = false;
                lb_user.Text = "無資料";
                return;
            }
            if (ds.Tables.Count == 0)
            {
                gv_user.Visible = false;
                lb_user.Text = "無資料";
                return;
            }
            if (ds.Tables[0].Rows.Count == 0)
            {
                gv_user.Visible = false;
                lb_user.Text = "無資料";
                return;
            }
            gv_user.Visible = true;
          //  dc.GridView_Bind(gv_user, ds);我自己寫的控件綁定數據方法,你不需要用直接看下面
             gv_user.DataSource = ds.Tables[0];
            gv_user.DataBind();
        }
        //編輯用戶資料 create by czz    2008/9/18
        protected void gv_user_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gv_user.EditIndex = e.NewEditIndex;
            gv_user_bind();//每次都調用這個function
        }