none
asp.net 中gridview每页显示8条数据怎么做?就改一下pagesize就行了吗?我改了怎么不行啊?我是初学者。。。 RRS feed

  • 问题

  • 前台代码:
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="Both">            
                  <Columns>
              <asp:BoundField DataField="Anumber" HeaderText="员工编号" ReadOnly="True" />
             <asp:BoundField DataField="employeename" HeaderText="员工姓名" />
             <asp:BoundField DataField="date" HeaderText="日期" />
             <asp:BoundField DataField="worktime" HeaderText="正班工时" />
               <asp:BoundField DataField="overtime" HeaderText="加班工时" />   
               <asp:BoundField DataField="absentwork" HeaderText="矿工天数" />   
               <asp:BoundField DataField="late" HeaderText="迟到分钟" />  
                 <asp:BoundField DataField="askleave" HeaderText="请假天数" />           
         </Columns>
         <RowStyle ForeColor="#000066" />
         <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
         <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
         <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
            </asp:GridView>

    cs中的代码:
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
                con.Open();
                string sqlstr3 = "select name from sysobjects where xtype='U ' and name<>'sysdiagrams' and name<>'manager' order by name";
                SqlDataAdapter myada3 = new SqlDataAdapter(sqlstr3, con);
                DataSet myds3 = new DataSet();
                myada3.Fill(myds3);
                DropDownList1.DataSource = myds3.Tables[0];
                DropDownList1.DataValueField = "name";
                DropDownList1.DataBind();
            }
        }
        protected void Button1_Click1(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
            con.Open();
            string sqlstr4 = "select * from " + DropDownList1.SelectedValue;
            SqlDataAdapter myada4 = new SqlDataAdapter(sqlstr4, con);
            DataSet myds4 = new DataSet();
            myada4.Fill(myds4);
            this.GridView1.DataSource = null;
            this.GridView1.DataSource = myds4.Tables[0];
            this.GridView1.DataBind();
        }

    2011年11月1日 6:53

答案

  • 問題應該是出在你沒有重新設定DataSource,試試看在PageIndexChanging事件中輸入下列程式碼:

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
    con.Open();
    string sqlstr4 = "select * from " + DropDownList1.SelectedValue;
    SqlDataAdapter myada4 = new SqlDataAdapter(sqlstr4, con);
    DataSet myds4 = new DataSet();
    myada4.Fill(myds4);
    this.GridView1.DataSource = myds4.Tables[0];
    GridView1.PageIndex = e.NewPageIndex;
    this.GridView1.DataBind();
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 深白 2011年11月1日 8:11
    2011年11月1日 8:07

全部回复

  • 要設定AllowPaging="True",PageSize="8"才可以正常運作。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年11月1日 7:33
  • 但是我点第二页它说GridView1激发了未处理的事件PageIndexChanging。
    所以我在PageIndexChanging事件里面写上
    GridView1.PageIndex = e.NewPageIndex;
    DataBind();
    但是为什么我点第二页,页面上没数据显示呢?是页面重新加载了?没有报错。。。反正不是数据条数太少。。。

    2011年11月1日 7:40
  • 但是我点第二页它说GridView1激发了未处理的事件PageIndexChanging。
    所以我在PageIndexChanging事件里面写上
    GridView1.PageIndex = e.NewPageIndex;
    DataBind();
    但是为什么我点第二页,页面上没数据显示呢?是页面重新加载了?没有报错。。。反正不是数据条数太少。。。

    你的做法是正確的,換頁的時候必須在PageIndexChanging加入下列程式碼:

    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
    

    請問你的總筆數有多少?


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年11月1日 7:56
  • - - 繁体字我看不大懂。。是问我数据条数?10几条。。
    2011年11月1日 8:01
  • 問題應該是出在你沒有重新設定DataSource,試試看在PageIndexChanging事件中輸入下列程式碼:

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
    con.Open();
    string sqlstr4 = "select * from " + DropDownList1.SelectedValue;
    SqlDataAdapter myada4 = new SqlDataAdapter(sqlstr4, con);
    DataSet myds4 = new DataSet();
    myada4.Fill(myds4);
    this.GridView1.DataSource = myds4.Tables[0];
    GridView1.PageIndex = e.NewPageIndex;
    this.GridView1.DataBind();
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 深白 2011年11月1日 8:11
    2011年11月1日 8:07
  • 可以了,谢谢 (*^__^*) 嘻嘻……
    2011年11月1日 8:12
  • 太好了。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 深白 2011年11月1日 8:16
    • 取消答案标记 深白 2011年11月1日 8:21
    2011年11月1日 8:15