现在的位置: 首页 > 综合 > 正文

文档(三)——Gridview的分页前后台代码

2012年06月28日 ⁄ 综合 ⁄ 共 3283字 ⁄ 字号 评论关闭

Gridview分页的前后台代码,当初刚学.net的时候,总觉得gridview自带的分页效果不能满足我的要求,在网上搜搜了大半天,最后整理如下:

前台代码

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="800px"
                                AllowPaging="True" OnRowDataBound="GridView1_RowDataBound" PageSize="10" OnRowCommand="GridView1_RowCommand"
                                CellPadding="4" ForeColor="#333333" GridLines="None">
                                <PagerSettings Visible="False" />
                                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                                <RowStyle BackColor="#EFF3FB" />
                                <Columns>
                                    <asp:TemplateField HeaderText="序号">
                                        <ItemTemplate>
                                            <%# (Container.DataItemIndex+1).ToString()%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:BoundField DataField="Test_paperID" HeaderText="试卷id" Visible="false" />
                                </Columns>
                                <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                                <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                                <HeaderStyle BackColor="#3b94de" Font-Bold="True" ForeColor="White" />
                                <EditRowStyle BackColor="#7C6F57" />
                                <AlternatingRowStyle BackColor="White" />
                                <HeaderStyle Font-Bold="True" Font-Size="Large" />
                            </asp:GridView>
                            <asp:Panel ID="Panel2" runat="server" Width="100%">
                                <asp:LinkButton ID="btnFirst1" CommandArgument="first" OnClick="PagerButtonClick1"
                                    runat="server">首 页</asp:LinkButton>
                                <asp:LinkButton ID="btnPrev1" CommandArgument="prev" OnClick="PagerButtonClick1"
                                    runat="server">上一页</asp:LinkButton>
                                <asp:LinkButton ID="btnNext1" CommandArgument="next" OnClick="PagerButtonClick1"
                                    runat="server">下一页</asp:LinkButton>
                                <asp:LinkButton ID="btnLast1" CommandArgument="last" OnClick="PagerButtonClick1"
                                    runat="server">尾 
                                                    页</asp:LinkButton>
                                <asp:Label ID="LblCurrentIndex1" runat="server"></asp:Label>
                                <asp:Label ID="LblPageCount1" runat="server"></asp:Label>
                                <asp:Label ID="LblRecordCount1" runat="server"></asp:Label>
                                &nbsp;&nbsp;&nbsp;&nbsp; 跳转到:
                                <asp:DropDownList ID="pageDropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="pageDropDownList1_SelectedIndexChanged">
                                </asp:DropDownList>
                            </asp:Panel>

绑定函数里的后台代码

          Panel2.Visible = true;
                GridView1.DataSource = lookselect;
                GridView1.DataKeyNames = new String[] { "Test_paperID" };
                GridView1.DataBind();

                btnFirst1.Enabled = true;
                btnPrev1.Enabled = true;
                btnNext1.Enabled = true;
                btnLast1.Enabled = true;

                LblCurrentIndex1.Text = "" + (GridView1.PageIndex + 1).ToString() + "";
                LblPageCount1.Text = "" + GridView1.PageCount.ToString() + "";
                LblRecordCount1.Text = "总共 " + lookselect.Tables[0].Rows.Count.ToString() + "";

                if (GridView1.PageIndex == 0)
                {
                    btnFirst1.Enabled = false;
                    btnPrev1.Enabled = false;
                }
                else if (GridView1.PageIndex == GridView1.PageCount - 1)
                {
                    btnNext1.Enabled = false;
                    btnLast1.Enabled = false;
                }
                pageDropDownList1.Items.Clear();
                for (int i = 1; i < GridView1.PageCount + 1; i++)
                {
                    pageDropDownList1.Items.Add(i.ToString());
                }
                pageDropDownList1.SelectedValue = Convert.ToString(GridView1.PageIndex + 1);
                // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
                btnFirst1.CommandName = "1";
                btnPrev1.CommandName = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());

                btnNext1.CommandName = (GridView1.PageCount == 1
                                           ? GridView1.PageCount.ToString()
                                           : (GridView1.PageIndex + 2).ToString());
                btnLast1.CommandName = GridView1.PageCount.ToString();

其余的函数类:

protected void PagerButtonClick1(object sender, EventArgs e)
    {
        GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
        Bind();
    }
    protected void pageDropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridView1.PageIndex = Convert.ToInt32(pageDropDownList1.SelectedValue) - 1;
        Bind();
    }

到这里,gridview分页的代码都在上面了。

抱歉!评论已关闭.