不知道在Gridview中实现分页显示.我的Gridview是用后台写代码与数据库连接的,不知道怎么写分页?<%@ Page Language="C#" AutoEventWireup="true" CodeFile="User.aspx.cs" Inherits="nnn" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body background="images/bg1.jpg">
    <form id="form1" runat="server">
        <div>
            <table style="width: 100%; height: 100%">
                <tr>
                    <td colspan="3">
                        &nbsp;
                        <asp:Label ID="Label11" runat="server" Text="用户名" Font-Size="Medium"></asp:Label>
                        &nbsp;&nbsp; &nbsp;<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        &nbsp; &nbsp; &nbsp; &nbsp;
                        <asp:Label ID="Label12" runat="server" Text="登 录IP" Font-Size="Medium"></asp:Label>
                        &nbsp;&nbsp; &nbsp;<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                        &nbsp; &nbsp;&nbsp; &nbsp;<asp:Button ID="Button5" runat="server" Text="查 询" OnClick="Button5_Click" />
                        &nbsp; &nbsp;
                        <asp:Button ID="Button6" runat="server" OnClick="Button6_Click" Text="添 加" /></td>
                </tr>
                <tr>
                    <td colspan="3" style="height: 437px">
                        <br />
                        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
                            BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Size="Small"
                            GridLines="Horizontal" Height="41px" Width="854px" DataKeyNames="Yhid" AllowPaging="true" AllowSorting="True" PageSize="15" OnRowCommand="GridView1_RowCommand">
                            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                            <Columns>
                                <asp:TemplateField HeaderText="用 户 名">
                                    <ItemTemplate>
                                        &nbsp;<asp:Label ID="Label1" runat="server" Text='<%# Eval("yhid") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="单位代码">
                                    <ItemTemplate>
                                        <asp:Label ID="Label4" runat="server" Text='<%# Eval("dwdm") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="姓  名">
                                    <ItemTemplate>
                                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("Yhxm") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="密  码">
                                    <ItemTemplate>
                                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("yhmm") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="登  录IP">
                                    <ItemTemplate>
                                        <asp:Label ID="Label5" runat="server" Text='<%# Eval("dlip") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="用户权限">
                                    <ItemTemplate>
                                        <asp:Label ID="Label6" runat="server" Text='<%# Eval("yhqx") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="登录时间">
                                    <ItemTemplate>
                                        <asp:Label ID="Label7" runat="server" Text='<%# Eval("dlsj") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="登录次数">
                                    <ItemTemplate>
                                        <asp:Label ID="Label8" runat="server" Text='<%# Eval("dlcs") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="锁定登录IP">
                                    <ItemTemplate>
                                        <asp:Label ID="Label9" runat="server" Text='<%# Eval("ipsd") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="用户禁止">
                                    <ItemTemplate>
                                        <asp:Label ID="Label10" runat="server" Text='<%# Eval("yhjz") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:ButtonField CommandName="MyUpdate" HeaderText="编  辑" ShowHeader="True" Text="修改内容" />
                                <asp:ButtonField CommandName="MyDelete" HeaderText="操  作" ShowHeader="True" Text="删  除" />
                            </Columns>
                            <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                            <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
                            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                            <AlternatingRowStyle BackColor="#F7F7F7" />
                            <PagerSettings LastPageText="下一页" Mode="NextPreviousFirstLast" NextPageText="上一页" />
                        </asp:GridView>
                    </td>
                </tr>
                <tr>
                    <td colspan="3" style="height: 58px">
                        <asp:LinkButton ID="LinkButton1" runat="server" Font-Size="Small">首  页</asp:LinkButton>
                        &nbsp;&nbsp; &nbsp;
                        <asp:LinkButton ID="LinkButton2" runat="server" Font-Size="Small" OnClick="LinkButton2_Click">上一页</asp:LinkButton>
                        &nbsp; &nbsp;
                        <asp:LinkButton ID="LinkButton3" runat="server" Font-Size="Small">下一页</asp:LinkButton>
                        &nbsp;&nbsp; &nbsp;<asp:LinkButton ID="LinkButton4" runat="server" Font-Size="Small">末  页</asp:LinkButton></td>
                </tr>
                <tr>
                    <td colspan="3">
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>
这是源代码,希望求助高手!!!!

解决方案 »

  1.   

    Gridview自带分页的,只需要绑定数据源就可以了
    如果不行,可以用第三方的分页控件
    自己写?我比较懒
      

  2.   

    AllowPaging="True" PageSize="15" 你里面不是写了吗?不行吗?
      

  3.   

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }
      

  4.   

    GridView1.DataBind();是自己写的方法 如果单纯什么都没有的话 直接DATABIND()
      

  5.   

    那就奇怪了,我也是自己后台写的select取出的数据邦定到gridview的呀 ,一样可以用自带的分页功能啊....
      

  6.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class nnn : System.Web.UI.Page
    {
        static public int pagesize =100;
        protected SqlConnection conn;
        string TbYhxx_sqlstr;
        SqlConnection sqlcon;
        SqlCommand sqlcom;
        protected void Page_Load(object sender, EventArgs e)
        {
            data1 a = new data1();
            if (!IsPostBack)
            {
                GridView1.DataSource = a.page(a.getid(1), pagesize);
                GridView1.DataBind();
            }    }    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "MyUpdate")
            {
                Response.Redirect("ReUser.aspx"); 
            }
            else if (e.CommandName == "MyDelete")
            {
                string strCon = "Data Source=(local);Database=IP;User ID=sa;Password=sa"; 
                int index = Convert.ToInt32(e.CommandArgument);
                string sqlstr = "delete from TbYhxx where Yhid='" + GridView1.DataKeys[index].Value.ToString() + "'";
                //Response.Write(sqlstr);
                sqlcon = new SqlConnection(strCon);
                sqlcom = new SqlCommand(sqlstr, sqlcon);
                sqlcon.Open();
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
                data1 a = new data1();
                GridView1.DataSource = a.page(a.getid(1), pagesize);
                GridView1.DataBind();
            }
        }
       
        
        protected void Button6_Click(object sender, EventArgs e)
        {
            Response.Redirect("AddUser.aspx");
        }    protected void Button5_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && TextBox2.Text == "")
            {
                TbYhxx_sqlstr = "select * from TbYhxx where Yhid='" + TextBox1.Text + "'";
            }
            else if (TextBox2.Text != "" && (TextBox1.Text == ""))
            {
                TbYhxx_sqlstr = "select * from TbYhxx where Dlip='" + TextBox2.Text + "'";
            }
            else if ((TextBox1.Text == "") && (TextBox2.Text == ""))
            {
                TbYhxx_sqlstr = "select * from TbYhxx where Yhid='" + TextBox1.Text + "'or Dlip='" + TextBox2.Text + "'";
            }
            else
            {
                TbYhxx_sqlstr = "select * from TbYhxx";
            }
            SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=IP;User ID=sa;Password=sa");//与SQL SEVER建立连接
            SqlDataAdapter TbYhxx_da = new SqlDataAdapter(TbYhxx_sqlstr, conn);
            DataSet ds = new DataSet();
            TbYhxx_da.Fill(ds, "TbYhxx");
            conn.Close();
            GridView1.DataSource= ds.Tables["TbYhxx"];
            GridView1.DataBind();
        }
        protected void LinkButton2_Click(object sender, EventArgs e)
        {    }
    }
    不知道"wingstime() "怎么写的代码,请教!
      

  7.   

    请教不敢,我也是新手... 在网上找资料,就进来看看了,正好最近在用gridviewhtml:(VB)    <asp:GridView id="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" AlternatingRowStyle-BackColor="ghostwhite" AllowPaging="True" PageSize="20" GridLines=Both>        <Columns>
                  <asp:TemplateField SortExpression="preview_count" HeaderText="PL数">
                       <HeaderTemplate>
                             <asp:LinkButton ID="lnkPreview" CommandName="Sort" CommandArgument="preview_count" Font-Underline="false" runat="server">PV数</asp:LinkButton>
                       </HeaderTemplate>
                       <ItemStyle Width="40px" HorizontalAlign="Center"></ItemStyle>
                       <ItemTemplate>
                             <asp:Label ID="lblPLNumber" runat="server" Text='<%# Eval("preview_count") %>'></asp:Label>
                       </ItemTemplate>
                </asp:TemplateField>            .......
    数据邦定:Dim sql As String = "Select * From files Order by file_id"
    Dim dt As DataTable = SelectDataList(sql)With GridView1            .DataSource = dt
                .DataBind()            .AutoGenerateColumns = False
                .Attributes.Add("bordercolor", "silver")End With指定到某一页:    GridView1.PageIndex = newPageIndex就是这样啊,我这么做没有问题啊...
      

  8.   

    "fengniumaxi()"我按照你的方法添加了代码,还是不能实现分页,点击"上一页"或者"下一页"之后,整个"GridView"就没有了,变成空白的了!希望你在帮我想想代码,谢谢
      

  9.   

    下面这个方法里要写重新生成datasource的语句的
    protected   void   GridView1_PageIndexChanging(object   sender,   GridViewPageEventArgs   e) 
            { 
                    GridView1.PageIndex   =   e.NewPageIndex; 
                    GridView1.datasource = ds;//ds 的生成和你开始给GridView1生成的数据源一样
                    GridView1.DataBind(); 
            }
    不这样做的话,就会出现只显示第一页,其它的是空白的现象。
    这样看来,每次分页其实是重新进行一次数据库的查询,这样的方法不好了