我需要在一个页面中gridview的数据绑定是通过以下方式完成的:
 protected void Page_Load(object sender, EventArgs e)
 {
            adjustname = Request.Params[0];
            databind();
   
 }
 public void databind()
{
     DataTable dt = new DataTable();
     dt = db.getClientOrders(adjustname);
     this.GridView1.DataSource = dt;
     this.GridView1.DataBind();
}
现在点击某个按钮,在按钮的事件中通过循环,访问gridview中的每一行,但是由于点击按钮后,页面首先执行Page_Load方法里边的databind(),这就造成了在循环时,用户对gridview的改变都丢失了,如果在Page_Load里边使用IsPostBack进行判断,则gridview的分页按钮点击后不会重新绑定,造成分页不能用。这个问题该怎么解决呢?

解决方案 »

  1.   

    写错事件了吧,写在grid的数据绑定事件里。
      

  2.   

    写在IspostBack里面
    然后在外面加上this.GridView1.DataBind()
      

  3.   

    绑定数据用一个方法,传个页面的参数,比如你的databind(int page),再首次加载时调用,然后再分页时调用,传入相应的页数就行了,循环GRIDVIEW就只对gridview做操作就行了
      

  4.   

    protected void Page_Load(object sender, EventArgs e) 
    {          
      if(!IspostBack)
      {
        adjustname = Request.Params[0]; 
        databind(); 
      }

      

  5.   

       protected void Page_Load(object sender, EventArgs e) 
       { 
            adjustname = Request.Params[0]; 
            if (!IsPostBack)
            {
                databind(); 
            }
      
        }     /// <summary>
        /// 分页
        /// </summary>
        #region
        protected void exGv_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            exGv.PageIndex = e.NewPageIndex;
            databind();     }    按钮点击事件
        protected void ButtonRelunch_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow di in exGv.Rows)
            {        }
        }    以上程序测试通过
      

  6.   

    分页的时候再绑定下你的gridview
      

  7.   

    最好写个bind方法 这样很多地方都可以调用