日期:2014-05-17  浏览次数:20518 次

最简单的gridview分页,如何实现?

如上图
其中性别一列,数据库是保存的是0和1,SQL语句就是简单的select username,sex,syscode from member,
我主要是想学习如何使用gridview,所以请不要修改sql。

请给写个完整的例子(C#),高分拜上,谢谢!

------解决方案--------------------
C# code

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if(e.Row.Cells[1].Text=="0")
             {
              e.Row.Cells[1].Text="男";
             }
             else
              {
                    e.Row.Cells[1].Text="女";
             }
        }
    }

------解决方案--------------------
一,无代码的
1.AllowSorting设为True,aspx代码中是AllowSorting="True";
2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12"。
3.默认的是单向排序的,右击GridView弹出“属性”,选择AllowSorting为True即可。

二 用 PagedDataSource 实现 你截图的分页是的
 public void dlBind()
{
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
string sqlstr = "select *from dbo.tb_Card order by carddate desc";
sqlcls = new sqlWeb(Session[WebUti.SK_HosID].ToString());//zpm add
DataSet ds = sqlcls.bbsSet(sqlstr);
ps.DataSource = ds.Tables[0].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 3; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
this.lnkbtnUp.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnBack.Enabled = true;
this.lnkbtnOne.Enabled = true;
if (curpage == 1)
{
this.lnkbtnOne.Enabled = false;//不显示第一页按钮
this.lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
this.lnkbtnNext.Enabled = false;//不显示下一页
this.lnkbtnBack.Enabled = false;//不显示最后一页
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.dlContent.DataSource = ps;
this.dlContent.DataBind();
}
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
this.dlBind();
}
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.dlBind();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.dlBind();
}
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.dlBind();
}
------解决方案--------------------
C# code

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" PageSize="5" Height="301px" Width="439px" 
            DataKeyNames="balance" AllowSorting="true" OnSorting="GridView1_Sorting" OnPageIndexChanging="GridView1_PageIndexChanging">
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="编号" SortExpression="Id" />
                <asp:TemplateField HeaderText="用户名" SortExpression="UserName">
                    <ItemTemplate>
                    <a href="gd_showuserinfo.aspx?username=<%# Eval("username") %>"><%# Eval("username") %></a>
                    </ItemTemplate>