如何使用asp.net代码实现分页功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用asp.net代码实现分页功能相关的知识,希望对你有一定的参考价值。

设计实现网页分页功能,具体为在数据设计一个符合规范的表,有50行以上的数据,在网页中浏览该数据表数据,网页需要分页显示数据,每页显示8行数据。只设计一个网页,不是多个的静态显示,而是可根据数据表的行数动态产生页数。

简单的作法就是使用PagedDataSource类,把数据绑定到数据源,具体可以搜索一下PagedDataSource 参考技术A 你的世界我飘过。

Gridview 分页 ASP.NET 与 Gridview 外部的分页器面板

【中文标题】Gridview 分页 ASP.NET 与 Gridview 外部的分页器面板【英文标题】:Gridview Paging ASP.NET with Pager Panel outside Gridview 【发布时间】:2014-09-16 20:23:14 【问题描述】:

这是我第一次使用 ASP.NET 开发网站。

我想在具有分页功能的 GridView 中显示我的数据库中的数据,我可以使用 OnPageIndexChanging="GridView1_PageIndexChanging" 来实现它,但我想使用自己的寻呼机,所以问题是

“如何将我的寻呼机(图片中的右下角)链接到 gridview 而不是由 ASP.NET 生成的寻呼机”

图片:

这是我在 aspx 中的代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered table-condensed table-striped table-primary table-vertical-center"
        PageSize="3" AllowPaging="True"
        OnPageIndexChanging="GridView1_PageIndexChanging">
         <Columns>
              <asp:BoundField DataField="UNIT_ID" HeaderText="รหัส" SortExpression="unitid">
              <HeaderStyle CssClass="center" />
              <ItemStyle Width="10%" CssClass="center" />
              </asp:BoundField>
         </Columns>                                                                    
      </asp:GridView>
     </ContentTemplate>
</asp:UpdatePanel>

cs 中的代码

public partial class _Default : Page

        protected void Page_Load(object sender, EventArgs e)
        
            if (!IsPostBack)
                bindGridView();  
        

        protected void bindGridView() 
            string sqltxt = "select * from drug_units"; //where UNIT_ID =:unitid";
            CommandData comm = new CommandData();
            comm.SetCommandText(sqltxt);
            //comm.AddInputParameter("unitid", "5");
            List<DrugsUnit> dy = new List<DrugsUnit>();
            comm.ExecuteNonQuery();
            dy = comm.ExecuteToList<DrugsUnit>();
            GridView1.DataSource = dy;
            /*BoundField boundField = new BoundField();
            boundField.DataField = "UNIT_ID";
            boundField.HeaderText = "ID";
            boundField.SortExpression = "ID";
            boundField.HeaderStyle.CssClass = "center";
            boundField.ItemStyle.CssClass = "center";
            GridView1.Columns.Add(boundField);*/
            GridView1.DataBind();
            GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
        

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

【问题讨论】:

您可以通过中继器使用外部寻呼机,请参阅[这篇文章][1] [1]:***.com/questions/9534463/gridview-external-paging 【参考方案1】:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)

    if (e.Row.RowType == DataControlRowType.Pager)
    
        upGridPager.Update();
        e.Row.SetRenderMethodDelegate(new RenderMethod((w, r) =>
        
            e.Row.SetRenderMethodDelegate(null);
            using (var ms = new StringWriter())
            using (var writer = new HtmlTextWriter(ms))
            
                e.Row.RenderControl(writer);
                GridPager.InnerHtml = "<table>" + ms.ToString() + "</table>";
            
        ));

aspx 可能看起来像这样(在您的网格之外)

<asp:UpdatePanel ID="upGridPager" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
     <div runat="server" id="GridPager" />
   </ContentTemplate>
</asp:UpdatePanel>

【讨论】:

以上是关于如何使用asp.net代码实现分页功能的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 中如何用C#语言代码实现分页功能

asp.net中GridView怎样进行分页,编辑,删除操作

理解ASP.NET Core

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE

asp.net中GridView怎样进行分页,编辑,删除操作

asp.net 点击一下文件名或者一个下载按钮,将文件下载下来怎么做啊???