C#方法 Repeater、webdiyer:AspNetPager分页、存储过程分页
2013-01-06 17:33
441 查看
此方法是基于三次架构、实体创建,可基于此修改
前台HTML:
<style>
.tableList tr td
{
height: 25px;
}
.trtitle
{
background-color: #990000;
height: 25px;
color: White;
}
.pageF
{
float: right;
padding: 5px 0;
margin-right: 50px;
}
.pageF a
{
text-decoration: none;
color: blue;
}
.pageF a:hover
{
text-decoration: underline;
cursor: pointer;
color: blue;
}
</style>
<table class="tableList" cellspacing="1" style="margin-top: 10px; width: 100%; text-align: center;"
border="1px">
<asp:repeater id="rptCampaignList" runat="server"> <HeaderTemplate> <thead> <tr class="trtitle" style=""> <th> ID </th> <th> 名称 </th> <th> 指向网址 </th> <th> 创建时间 </th> <th> 操作 </th> </tr> </thead> </HeaderTemplate> <ItemTemplate> <tbody> <tr> <td class="alone"> <%# Eval("PartnersID")%> </td> <td class="alone"> <%# Eval("PartnersName")%> </td> <td> <%# Eval("PartnersUrl")%> </td> <td> <%# Eval("PCreateDate", "{0:yyyy-MM-dd HH:ss}").ToString()%> </td> <td> <asp:LinkButton ID="lnkBtnDelUser" CommandArgument='<%# Eval("PartnersID")%>' CommandName="del" OnCommand="lnkBtnOp_Command" runat="server" OnClientClick="if(!confirm('你想要删除这条记录吗?')) return false;">删除</asp:LinkButton> </td> </tr> </tbody> </ItemTemplate> </asp:repeater>
<tfoot>
<tr>
<td colspan="10">
<div class="pageF">
<webdiyer:AspNetPager ID="pagerBarList" CssClass="paginator" CurrentPageButtonClass="cpb"
OnPageChanged="pagerBarList_PageChanged" runat="server" PageSize="20" FirstPageText="首页"
LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" AlwaysShow="true" NumericButtonCount="5"
CurrentPageButtonPosition="Center" CustomInfoHTML="<font style='color:#0000CC;'>共%PageCount%页%RecordCount%条记录</font> "
ShowCustomInfoSection="Left" CustomInfoSectionWidth="120px">
</webdiyer:AspNetPager>
</div>
</td>
</tr>
</tfoot>
</table>
后台代码:
Model类
类:DAL
类:BLL
后台代码:
所用到的存储过程:
前台HTML:
<style>
.tableList tr td
{
height: 25px;
}
.trtitle
{
background-color: #990000;
height: 25px;
color: White;
}
.pageF
{
float: right;
padding: 5px 0;
margin-right: 50px;
}
.pageF a
{
text-decoration: none;
color: blue;
}
.pageF a:hover
{
text-decoration: underline;
cursor: pointer;
color: blue;
}
</style>
<table class="tableList" cellspacing="1" style="margin-top: 10px; width: 100%; text-align: center;"
border="1px">
<asp:repeater id="rptCampaignList" runat="server"> <HeaderTemplate> <thead> <tr class="trtitle" style=""> <th> ID </th> <th> 名称 </th> <th> 指向网址 </th> <th> 创建时间 </th> <th> 操作 </th> </tr> </thead> </HeaderTemplate> <ItemTemplate> <tbody> <tr> <td class="alone"> <%# Eval("PartnersID")%> </td> <td class="alone"> <%# Eval("PartnersName")%> </td> <td> <%# Eval("PartnersUrl")%> </td> <td> <%# Eval("PCreateDate", "{0:yyyy-MM-dd HH:ss}").ToString()%> </td> <td> <asp:LinkButton ID="lnkBtnDelUser" CommandArgument='<%# Eval("PartnersID")%>' CommandName="del" OnCommand="lnkBtnOp_Command" runat="server" OnClientClick="if(!confirm('你想要删除这条记录吗?')) return false;">删除</asp:LinkButton> </td> </tr> </tbody> </ItemTemplate> </asp:repeater>
<tfoot>
<tr>
<td colspan="10">
<div class="pageF">
<webdiyer:AspNetPager ID="pagerBarList" CssClass="paginator" CurrentPageButtonClass="cpb"
OnPageChanged="pagerBarList_PageChanged" runat="server" PageSize="20" FirstPageText="首页"
LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" AlwaysShow="true" NumericButtonCount="5"
CurrentPageButtonPosition="Center" CustomInfoHTML="<font style='color:#0000CC;'>共%PageCount%页%RecordCount%条记录</font> "
ShowCustomInfoSection="Left" CustomInfoSectionWidth="120px">
</webdiyer:AspNetPager>
</div>
</td>
</tr>
</tfoot>
</table>
后台代码:
Model类
public class Partners { //PartnersID, PartnersName, PartnersUrl, PCreateDate private int partnersID; public int PartnersID { get { return partnersID; } set { partnersID = value; } } private string partnersName; public string PartnersName { get { return partnersName; } set { partnersName = value; } } private string partnersUrl; public string PartnersUrl { get { return partnersUrl; } set { partnersUrl = value; } } private DateTime? pCreateDate; public DateTime? PCreateDate { get { return pCreateDate; } set { pCreateDate = value; } }
类:DAL
public List<Partners> GetEDM_CountryPropertyList( int pageSize, int pageIndex, ref int recordCount) { List<Partners> entities = new List<Partners>(); SqlParameter[] pars = { new SqlParameter("@PageSize", pageSize), new SqlParameter("@PageIndex", pageIndex), SqlHelper.MakeParam("@RecordCount",SqlDbType.Int,4,ParameterDirection.Output,null) }; SqlDataReader reader = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "dbo.PartnertsList", pars); try { while (reader.Read()) { Partners cp = new Partners() { //PartnersID, PartnersName, PartnersUrl, PCreateDate PartnersID = Field.GetInt(reader, "PartnersID"), PartnersName = Field.GetString(reader, "PartnersName"), PartnersUrl = Field.GetString(reader, "PartnersUrl"), PCreateDate = Field.GetDateTime(reader, "PCreateDate"), }; entities.Add(cp); } } catch (Exception ex) { recordCount = -1; } finally { if (reader != null) reader.Close(); } recordCount = Convert.ToInt32(pars[2].Value); return entities; }
类:BLL
public class PartnersBLL { private readonly DLL.PartnersData country = new DLL.PartnersData(); /// <summary> /// 国家房产信息 列表 分页 /// </summary> /// <param name="ECP_countryId"></param> /// <param name="PropertyState"></param> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="recordCount"></param> /// <returns></returns> public List<Partners> GetEDM_CountryPropertyList( int pageSize, int pageIndex, ref int recordCount) { return country.GetEDM_CountryPropertyList( pageSize, pageIndex, ref recordCount); } /// <summary> /// 分页 移民局 /// </summary> /// <param name="?"></param> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="recordCount"></param> /// <returns></returns> public List<Immigration> GetEDM_ImmigrationList(int pageSize, int pageIndex, ref int recordCount) { return country.GetEDM_ImmigrationList(pageSize, pageIndex, ref recordCount); } }
后台代码:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PageBind(); PageBingUser(); PageBingMess(); PageBindImmigration(); } } protected void PageBind() { int recordCount = 0; List<Partners> list = new List<Partners>(); BLL.PartnersBLL country = new BLL.PartnersBLL(); //this.pagerBarList.PageSize, this.pagerBarList.CurrentPageIndex, ref recordCount list = country.GetEDM_CountryPropertyList( this.pagerBarList.PageSize, this.pagerBarList.CurrentPageIndex, ref recordCount); rptCampaignList.DataSource = list; rptCampaignList.DataBind(); //判断有多少条数据的 this.pagerBarList.RecordCount = recordCount; } protected void pagerBarList_PageChanged(object sender, EventArgs e) { this.PageBind(); } /// <summary> /// 删除或修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkBtnOp_Command(object sender, CommandEventArgs e) { string infoID = e.CommandArgument.ToString(); //Dictionary<string, object> dic = new Dictionary<string, object>(); //dic.Add("EMID", infoID); if (e.CommandName.Equals("del")) { Dictionary<string, object> dic = new Dictionary<string, object>(); dic.Add("PartnersID", infoID); if (BLL.BLL.Delete(dic, "Partners")) { Response.Write("<script>alert('操作成功!');window.location.href='PartnersList.aspx';</script>"); } else { Response.Write("<script>alert('操作失败!');window.location.href='PartnersList.aspx';</script>"); } } }需配置:Web.config文件
<system.web> <pages controlRenderingCompatibilityVersion="3.5" validateRequest="false" clientIDMode="AutoID" enableEventValidation="false" > <controls> <add tagPrefix="webdiyer" namespace="Wuqi.Webdiyer" assembly="AspNetPager" /> </controls> </pages> </system.web>
所用到的存储过程:
USE [Production] GO /****** Object: StoredProcedure [dbo].[PartnertsList] Script Date: 01/06/2013 17:39:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[PartnertsList] @PageSize INT, @PageIndex INT, @RecordCount INT OUTPUT AS BEGIN BEGIN TRAN DECLARE @Sql NVARCHAR(MAX), @Where NVARCHAR(MAX) --默认值 @SQL 语句取得总行数 SET @Sql = 'SELECT @RecordCount = COUNT(1) FROM dbo.Partners ' SET @Where = '' --查询当前活动下的邮件列表 if(@Where!='') set @Where=@Where+' and ' IF(@Where != '') SET @Where = ' WHERE ' + @Where --合并 @SQL 查询行数 SET @Sql = @Sql + @Where print @Sql EXEC sp_executesql @Sql, N'@RecordCount INT OUTPUT', @RecordCount = @RecordCount OUTPUT --合并 @SQL 查询 SET @Sql = 'SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY PartnersID DESC) AS RowNumber, dbo.Partners.* FROM dbo.Partners ' + @Where + ') as tmp WHERE RowNumber BETWEEN (@PageIndex - 1) * @PageSize + 1 AND @PageIndex * @PageSize' EXEC sp_executesql @Sql, N'@PageSize INT, @PageIndex INT', @PageSize, @PageIndex IF @@ERROR<>0 BEGIN ROLLBACK TRAN END ELSE BEGIN COMMIT TRAN END END
相关文章推荐
- SQL分页存储过程和C#中linq分页查询方法
- SQL分页存储过程和C#中linq分页查询方法
- 完整的分页存储过程以及c#调用方法
- Oracle与C#存储过程分页
- C#中常用的分页存储过程总绪
- asp.net 调用 mysql 分页存储过程,repeater使用mysql分页存储过程,mysql 存储过程的注意事项
- c# oracle 存储过程分页查询
- Repeater应用分页存储过程
- Oracle分页存储过程以及C#调用
- C# MySql分页存储过程的应用
- c#调用多个可选条件查询的分页存储过程
- C#利用存储过程进行高速分页[包括前台和后台代码]
- c# 调用带有参数的存储过程方法--oracle篇
- 常用存储过程分页实现方法的性能比较
- c#使用数据库存储过程的基本方法
- C# 调用带有输出参数的分页存储过程
- 在C#中创建sql的存储过程方法之一
- C#存储过程调用的三个方法
- mysql 存储过程中 limit之后使用分页变量,传入分页参数. 类似于微博游标分批次获取信息;问号参数类似于c#的string.format;问号占位符