读书人

一个自动分页的 DataGridView1 已经有

发布时间: 2012-10-18 13:46:55 作者: rapoo

一个自动分页的 DataGridView1 已经有数据了求 DataGridView1 的总记录数,每页的分页行数,当前所在的页
一个自动分页的 DataGridView1 已经有数据了,比如自动 分了 X页
求 DataGridView1 的总记录数,每页的分页行数,当前所在的页
要 用DataGridView1 的属性取,而不再用SQL语句向数据库中取

[解决办法]
--gridview的属性
<PagerTemplate>
<table style="width:100%" border="1">
<tr>
<td>
<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev" CommandName="Page"
Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton>
<asp:Label ID="LabelLabelCurrentPage1" runat="server" ForeColor ="RoyalBlue">第</asp:Label>
<asp:Label ID="LabelCurrentPage" runat="server" ForeColor ="RoyalBlue"
Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label>
<asp:Label ID="LabelPageCount1" runat="server" ForeColor ="RoyalBlue" >/</asp:Label>
<asp:Label ID="LabelPageCount" runat="server" ForeColor ="RoyalBlue"
Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label>
<asp:Label ID="Label2" runat="server" ForeColor ="RoyalBlue" >页</asp:Label>
</td>
</tr>
</table>
</PagerTemplate>
[解决办法]
/// <summary>
/// 在 GridView 控件中的某个行被绑定到一个数据记录时发生。此事件通常用于在某个行被绑定到数据时修改该行的内容。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
this.lblCurrentPage.Text = string.Format("当前第{0}页/总共{1}页", this.GridView1.PageIndex + 1, this.GridView1.PageCount);

//遍历所有行设置边框样式
foreach (TableCell tc in e.Row.Cells)
{
tc.Attributes["style"] = "border-color:Black";
}
//用索引来取得编号


if (e.Row.RowIndex != -1)
{
int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
}

}
/// <summary>
/// 重新绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
bind();
}
protected void lnkbtnFrist_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = 0;
bind();
}
protected void lnkbtnPre_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex > 0)
{
this.GridView1.PageIndex = this.GridView1.PageIndex - 1;
bind();
}
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
if (this.GridView1.PageIndex < this.GridView1.PageCount)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
bind();
}
}
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
this.GridView1.PageIndex = this.GridView1.PageCount;
bind();
}
[解决办法]
DataSet ds = (DataSet)GridView1.DataSource;
ds.Table[0].Rows.Count就是总记录数了

读书人网 >C#

热点推荐