页面有如下控件:有1个检索框,能对表中的某个字段进行检索。
1个gridview,gridview上面和下面各有4个button按钮,分别是首页、上一页、下一页、末页。
当打开页面的时候,显示表中所有的数据。
点击翻页按钮可以对 gridview翻页。
当在检索框中输入值对某个字段检索之后,显示表中符合条件的数据。
点击翻页按钮也可以对gridview翻页。
请问大家,该怎么做?  

解决方案 »

  1.   

    每次给gridview手动指定数据源。处理pageindexchanging事件时重新绑定这个数据源。
      

  2.   

    要求不高的话,用GridView自带的分页功能!
    1.设置GridView的AllowPaging的属性为true,
    2.设置首页、上一页、下一页、末页,在GridView的PagerSettings中有很多选项!!
      

  3.   

    恩了
    在pageindexchaning事件里重新绑定一次
      

  4.   

    pageindexchanging事件中重新绑定数据
      

  5.   

    记录少可以用gridview,多的话的通盘考虑,否则网站吃不消
    www.datasonar.com
      

  6.   

    我的疑问是 那4个BUTTON按钮事件里该怎么写呢?    protected void LBtnNavigation_Click(object sender, EventArgs e)
        {
            LinkButton btn = (LinkButton)sender;
            switch (btn.CommandName)
            {
                case "First":
                    PageIndex = 0;
                    break;
                case "Prev"://if( PageIndex > 0 )
                    PageIndex = PageIndex - 1;
                    break;
                case "Next"://if( PageIndex < PageCount -1)
                    PageIndex = PageIndex + 1;
                    break;
                case "Last":
                    PageIndex = PageCount - 1;
                    break;
            }
            GridViewDataBind();  
        }
      

  7.   

    直接在按钮添加 OnClick=LBtnNavigation_Click  CommandArgument="first"
      

  8.   

    楼主用的CommandName 按钮中添加CommandName="First" 我想是一样的。
      

  9.   

    感觉有些说不清楚。在按钮事件里不是要指明显示数据的方法吗?比如GridViewDataBind()
      

  10.   

    只需要你8楼的代码 配合设置4个按钮的属性,即:OnClick="LBtnNavigation_Click" CommandName="First".最后在girdview的pageindexchanging事件中调用你绑定的函数,如:
    GVPara.CurrentPageIndex = e.NewPageIndex;
    GridViewDataBind();
    这样就实现翻页的功能了。
      

  11.   

    注意是可以实现翻页了,但是只是对调用GridViewDataBind()方法后得到的数据翻页,不能对条件检索后得到的数据翻页
      

  12.   

    貌似我不能回复了,那就是数据源的问题了,GridViewDataBind()没写好
      

  13.   

    我就没弄明白,GridViewDataBind()这个要怎么写?
    把条件检索和显示所有数据都写到GridViewDataBind()里了?
      

  14.   

        private void DataGridDataBind()
        {
            DataSet ds = GetCustomersData();
            recordCount = ds.Tables[0].Rows.Count;
            //获取当前的页数
            pageCount = (int)Math.Ceiling(recordCount * 1.0 / PageSize);
            //避免纪录从有到无时,并且已经进行过反页的情况下CurrentPageIndex > PageCount出错
            if (recordCount == 0)
            {
                this.DataGrid1.CurrentPageIndex = 0;
            }
            else if (this.DataGrid1.CurrentPageIndex >= pageCount)
            {
                this.DataGrid1.CurrentPageIndex = pageCount - 1;
            }
            this.DataGrid1.DataSource = ds;
            this.DataGrid1.DataBind();
            NavigationStateChange();
        }
      

  15.   

        //数据绑定
        public static DataSet GetCustomersData()
        {
            SqlConnection conn = new SqlConnection(connString);
            string sqlStr = "SELECT CustomerID, CompanyName,Address,Phone FROM Customers";
            SqlCommand comm = new SqlCommand(sqlStr, conn);
            SqlDataAdapter dataAdapter = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            return ds;
        }
      

  16.   

    查询数绑定到gridview
    if(!IsPostback)
    {
    BindData();
    }
    private void BindData()
    {
    //查询数据。在通过按钮分页,还可使用aspnetpager分页控件
    }
    参考
    参考
      

  17.   

    pageindexchanging事件中重新绑定数据
      

  18.   


    ding 很少使用自带的分页,存储过程分页还可以,要多少条取多少条,google 一下,
      

  19.   

    想做一个速度快而且集成搜索的快速分页,代码还是比较多的,通过程序每次从数据库中取一定得数据,就是每页显示的条数,不要一次性取,楼主如果是小数据量的分页,直接用gridview自带的那个分页功能(楼主问的是WebForm的吗),简单,几句代码就可以实现。
      

  20.   

    现在做的这个数据量不大,不过下一个项目也需要实现这个功能,那个数据量大.我做的是WebForm的.