您的位置:首页 > 编程语言

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

2012-11-25 11:35 253 查看
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>
     跳转到:
<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分页的代码都在上面了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: