.net GridView控件分页效果呈现数据

11 篇文章 0 订阅

页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BanksList.aspx.cs" Inherits="AutomatedValuation.GwWebsite.Home.BanksList" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="gridView" runat="server" AllowPaging="false" Width="100%" CellPadding="3"
        BorderWidth="1px" DataKeyNames="bank_id"  OnRowCommand="gridView_RowCommand"
        AutoGenerateColumns="false" PageSize="10" RowStyle-HorizontalAlign="Center" BorderStyle="None" GridLines ="None">
        <Columns>
            <%--<asp:BoundField DataField="bank_id" HeaderText="序号" SortExpression="bank_id" ItemStyle-HorizontalAlign="Center" />--%>
            <asp:BoundField DataField="bank_name" HeaderText="" SortExpression="bank_name" ItemStyle-HorizontalAlign="Center" />
            <asp:BoundField DataField="bank_address" HeaderText="" SortExpression="bank_address" ItemStyle-HorizontalAlign="Center" />
            <asp:TemplateField ControlStyle-Width="50" HeaderText="" ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButtons_Zs" runat="server" CausesValidation="false" CommandName="bank_url" CommandArgument='<%#Eval("bank_url") %>'
                             Text="查看"> </asp:LinkButton>
                </ItemTemplate>
        </asp:TemplateField>
            
                        </Columns>
        <PagerStyle HorizontalAlign="Right" BackColor="#E8F4FF"></PagerStyle>
    </asp:GridView>
    
    <webdiyer:aspnetpager ID="AspNetPager1" runat="server" UrlPaging="false" AlwaysShow="true"
        FirstPageText="首页" LastPageText="末页" OnPageChanged="AspNetPager1_PageChanged"
        NextPageText="下一页" PrevPageText="上一页" CustomInfoHTML="目前是第%CurrentPageIndex%页 / 总共%PageCount%页"
        ShowCustomInfoSection="Right" PagingButtonSpacing="0px" NumericButtonCount="5"
        CssClass="pages" CurrentPageButtonClass="cpb" SubmitButtonText="跳转">
    </webdiyer:aspnetpager>
</div>
</div>

        </div>
    </div>
    </form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ValuationBLL;
using ValuationModel;

namespace AutomatedValuation.GwWebsite.Home
{
    public partial class BanksList : System.Web.UI.Page
    {
        BanksBLL bll = new BanksBLL();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindData();
            }
        }

        public void BindData()//数据库查询功能
        {
            int currentPage = AspNetPager1.CurrentPageIndex - 1;
            int pageSize = AspNetPager1.PageSize;
            List<Banks> ds = new List<Banks>();
            StringBuilder strWhere = new StringBuilder();
            strWhere.AppendFormat("1=1");

            ds = bll.GetModelList(strWhere.ToString(), "bank_id", currentPage * pageSize + 1, AspNetPager1.CurrentPageIndex * pageSize);//bank_id根据数据库中id字段名修改
            AspNetPager1.RecordCount = bll.GetRecordCount(strWhere.ToString());
            gridView.DataSource = ds;
            gridView.DataBind();
        }
        protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            //txtXq.Text = txtXq.Text;
            BindData();
        }

        protected void gridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string url = e.CommandArgument.ToString();//点击查看可以跳转页面的
            Response.Redirect(url);
        }
    }
}

数据查询用的是三层架构的思维。

BanksBLL bll = new BanksBLL();的bll.GetModelList()方法

        /// <summary>
        /// 获得数据列表 分页
        /// </summary>
        public List<Banks> GetModelList(string strWhere, string orderby, int startIndex, int endIndex)
        {
            DataSet ds = dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
            return DataTableToListfy(ds.Tables[0]);
        }
        
        /// <summary>
        /// fenye获得数据列表
        /// </summary>
        public List<Banks> DataTableToListfy(DataTable dt)
        {
            List<Banks> modelList = new List<Banks>();
            int rowsCount = dt.Rows.Count;
            if (rowsCount > 0)
            {
                Banks model;
                for (int n = 0; n < rowsCount; n++)
                {
                    model = dal.DataRowToModel(dt.Rows[n]);
                    if (model != null)
                    {
                        modelList.Add(model);
                    }
                }
            }
            return modelList;
        }

        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public int GetRecordCount(string strWhere)
        {
            return dal.GetRecordCount(strWhere);
        }

BanksDAL的dal.GetListByPage()方法

        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT * FROM ( ");
            strSql.Append(" SELECT ROW_NUMBER() OVER (");
            if (!string.IsNullOrEmpty(orderby.Trim()))
            {
                strSql.Append("order by T." + orderby);
            }
            else
            {
                strSql.Append("order by T.bank_id desc");//这里的bank_id需要根据你的数据库id字段进行修改
            }
            strSql.Append(")AS Row, T.*  from Banks T ");//这里的Banks就是表的名称
            if (!string.IsNullOrEmpty(strWhere.Trim()))
            {
                strSql.Append(" WHERE " + strWhere);
            }
            strSql.Append(" ) TT");
            strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
            return DbHelperSQL.Query(strSql.ToString());
        }


        public Banks DataRowToModel(DataRow row)
        {
            Banks model = new Banks();
            if (row != null)
            {

                if (row["bank_id"] != null && row["bank_id"].ToString() != "")
                {
                    model.bank_id = int.Parse(row["bank_id"].ToString());
                }
                if (row["bank_category"] != null)
                {
                    model.bank_category = row["bank_category"].ToString();
                }
                if (row["bank_name"] != null)
                {
                    model.bank_name = row["bank_name"].ToString();
                }
                if (row["bank_address"] != null)
                {
                    model.bank_address = row["bank_address"].ToString();
                }
                if (row["bank_summary"] != null)
                {
                    model.bank_summary = row["bank_summary"].ToString();
                }
                if (row["bank_services"] != null)
                {
                    model.bank_services = row["bank_services"].ToString();
                }
                if (row["bank_url"] != null)
                {
                    model.bank_url = row["bank_url"].ToString();
                }
            }
            return model;
        }

        /// <summary>
        /// 获取记录总数
        /// </summary>
        public int GetRecordCount(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) FROM Banks ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            object obj = DbHelperSQL.GetSingle(strSql.ToString());
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值