一. 分页控件的实现:
1.注册:
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
2.使用控件:
首部分页显示
<webdiyer:AspNetPager CssClass="anpager" ID="AspNetPager1" runat="server" Width="100%"
CustomInfoHTML="共有记录 <font>%RecordCount%</font> 条 当前为
<font>%CurrentPageIndex%</font>/<font>%PageCount%</font> 页"
HorizontalAlign="Right" ShowCustomInfoSection="Left" CustomInfoTextAlign="Right"
CustomInfoSectionWidth="28%" ShowPageIndexBox="Always" PageIndexBoxType="TextBox"
TextBeforePageIndexBox="转到 " UrlPagingTarget="_self" UrlPageIndexName="p"
UrlPageSizeName="s" UrlPaging="True" PageIndexBoxClass="flattext" ShowPageIndex="True"
PageSize="20" SubmitButtonClass="flatbutton" SubmitButtonText=" GO "
TextAfterPageIndexBox=" 页 " Wrap="False">
</webdiyer:AspNetPager>
尾部代码分页显示
<webdiyer:AspNetPager runat="server" ID="AspNetPager2" CloneFrom="AspNetPager1"> </webdiyer:AspNetPager>
3.后台处理:
this.AspNetPager1.RecordCount = bll.GetCount(SqlWhere);
rptSortlist.DataSource = bll.GetList(AspNetPager1.PageSize, AspNetPager1.PageCount, SqlWhere, "Reve1", 1);
二. 关于后台处理的SqlWhere
1.将一个数字先变为字符串类型,然后再加到SqlWhere字符串中。
SqlWhere = " ShopID=" + HjNetHelper.GetQueryString("tid");
三. 关于SQLServerDAL层的获取列表函数
1.获取一张表的数据时,如果碰到需要另一张表的某个数据,可以使用子查询的方式来获取。最好不要使用表连接(join...on...),容易出错。
/// <summary>
/// 获取列表
/// </summary>
/// <param name="pagesize">页尺寸</param>
/// <param name="pageindex">页索引</param>
/// <param name="strWhere">查询条件</param>
/// <param name="orderName">排序字段</param>
/// <param name="orderType">排序类型,1为降序,0为升序</param>
/// <returns>图书列表</returns>
public IList<ShopNavIntroInfo> GetList(int pagesize, int pageindex, string strWhere, string orderName, int orderType)
{
IList<ShopNavIntroInfo> infos = new List<ShopNavIntroInfo>();
StringBuilder str = new StringBuilder();
str.Append("*,(select Title from ShopNav where DataID=ShopNavIntro.SortId) Title"); //子查询
SqlParameter[] parameters =
{
new SqlParameter("@tblName", SqlDbType.VarChar,255),
new SqlParameter("@strGetFields", SqlDbType.VarChar,1000),
new SqlParameter("@primary", SqlDbType.VarChar,255),
new SqlParameter("@orderName", SqlDbType.VarChar,255),
new SqlParameter("@PageSize", SqlDbType.Int),
new SqlParameter("@PageIndex", SqlDbType.Int),
new SqlParameter("@OrderType", SqlDbType.Bit),
new SqlParameter("@strWhere", SqlDbType.VarChar,1500)
};
parameters[0].Value = "ShopNavIntro";
parameters[1].Value = str.ToString(); //子查询
parameters[2].Value = "DataId";
parameters[3].Value = orderName;
parameters[4].Value = pagesize;
parameters[5].Value = pageindex;
parameters[6].Value = orderType;
parameters[7].Value = strWhere;
using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.StoredProcedure, "pageselectpri", parameters))
{
while (dr.Read())
{
ShopNavIntroInfo info = new ShopNavIntroInfo();
info.DataId = HJConvert.ToInt32(dr["DataId"]);
info.SortId = HJConvert.ToInt32(dr["SortId"]);
info.Title = HJConvert.ToString(dr["Title"]);
info.HelpContent = HJConvert.ToString(dr["HelpContent"]);
info.AddTime = HJConvert.ToDateTime(dr["AddTime"]);
info.ViewTimes = HJConvert.ToInt32(dr["ViewTimes"]);
info.OrderNum = HJConvert.ToInt32(dr["OrderNum"]);
info.KeyWord = HJConvert.ToString(dr["KeyWord"]);
info.IsVisiableAtHome = HJConvert.ToInt32(dr["IsVisiableAtHome"]);
info.IsVisiablePictureAtHome = HJConvert.ToInt32(dr["IsVisiablePictureAtHome"]);
infos.Add(info);
}
}
return infos;
}
2.如果不要求分页,可以直接使用SQL语句来查询整张表。
/// <summary>
/// 通过ShopID获取子项列表
/// </summary>
/// <param name="pid">父类编号</param>
/// <returns>图书列表</returns>
public IList<ShopNavIntroInfo> GetListByID(int ShopID)
{
IList<ShopNavIntroInfo> infos = new List<ShopNavIntroInfo>();
SqlParameter parameter = new SqlParameter("@ShopID", SqlDbType.Int, 4);
parameter.Value = ShopID;
string sql = "select * from ShopNavIntro where IsVisiableAtHome=@ShopID order by OrderNum desc";
using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.Text, sql, parameter))
{
while (dr.Read())
{
ShopNavIntroInfo info = new ShopNavIntroInfo();
info.DataId = HJConvert.ToInt32(dr["DataId"]);
info.SortId = HJConvert.ToInt32(dr["SortId"]);
info.Title = HJConvert.ToString(dr["Title"]);
info.HelpContent = HJConvert.ToString(dr["HelpContent"]);
info.AddTime = HJConvert.ToDateTime(dr["AddTime"]);
info.ViewTimes = HJConvert.ToInt32(dr["ViewTimes"]);
info.OrderNum = HJConvert.ToInt32(dr["OrderNum"]);
info.KeyWord = HJConvert.ToString(dr["KeyWord"]);
info.IsVisiableAtHome = HJConvert.ToInt32(dr["IsVisiableAtHome"]);
info.IsVisiablePictureAtHome = HJConvert.ToInt32(dr["IsVisiablePictureAtHome"]);
infos.Add(info);
}
}
return infos;
}
四.订单播报的滚动显示
1.页面
<div class="dispbox fdwid" οnclick="orderinfo()">
<div class="tthead">
<a href="javascript:void(0);" class="up_iocn"></a>
最新订单
</div>
</div>
<div class="cartbod" id="marquee2_1" style="margin-bottom:10px; border:1px solid #dedede; ">
<div id="marquee2_2" class="" style="padding:0px 0 0 10px;">
<ul class="carthead">
<asp:Repeater runat="server" ID="rptOrderList">
<ItemTemplate>
<li><span class="red fa">
<%# WebUtility.Left(Eval("UserName"), 1)%>**</span> 于
<%# Convert.ToDateTime(Eval("orderTime")).ToShortDateString()%>
订了 <a href="javascript:void(0);">
<%# Eval("orderfood")%></a> 等,获得 <span class="red fa">
<%# Eval("TotalPrice")%>
<%--<%# Convert.ToInt32(Eval("TotalPrice"))%>--%></span> 积分。
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
<div id="marquee2_3" style="padding:0px 0 0 10px;">
<ul>
<asp:Repeater runat="server" ID="rptOrderList1">
<ItemTemplate>
<li><span class="red fa">
<%# WebUtility.Left(Eval("UserName"), 1)%>**</span> 于
<%# Convert.ToDateTime(Eval("orderTime")).ToShortDateString()%>
订了 <a href="#">
<%# Eval("orderfood")%></a> 等,获得 <span class="red fa">
<%# Eval("TotalPrice")%>
<%--<%# Convert.ToInt32(Eval("TotalPrice"))%>--%></span> 积分。
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
</div>
2.调用js脚本:
<script src="javascript/jquery-1.4a2.min.js" type="text/javascript"></script>
<script src="javascript/jCommon.js" type="text/javascript"></script>
<script src="javascript/Common.js" type="text/javascript"></script>
并在
<script type="text/javascript" language="javascript">
jQuery(document).ready(function() {
order();//在jcommon.js文件中定义
});
</script>
中调用。
3,jcommon.js中定义滚动。
function order() {
var speed = 50;
var FGDemo1_111 = document.getElementById('marquee2_1');
var FGDemo1_211 = document.getElementById('marquee2_2');
var FGDemo1_311 = document.getElementById('marquee2_3');
var f2html1 = FGDemo1_211.innerHTML;
//FGDemo1_31.innerHTML = f2html;
jQuery("#marquee2_3").html(f2html1);
function Marquee211() {
if (FGDemo1_311.offsetHeight - FGDemo1_111.scrollTop <= 0)
FGDemo1_111.scrollTop -= FGDemo1_211.offsetHeight
else {
FGDemo1_111.scrollTop++
}
}
var MyMar211 = setInterval(Marquee211, speed)
FGDemo1_111.onmouseover = function() { clearInterval(MyMar211) }
FGDemo1_111.onmouseout = function() { MyMar211 = setInterval(Marquee211, speed) }
}
3.页面后台绑定repeater控件
protected void BindData()
{
ETogoOrder bll=new ETogoOrder();
rptOrderList.DataSource = bll.GetListWithTime(10);
rptOrderList.DataBind();
rptOrderList1.DataSource = bll.GetListWithTime(10);
rptOrderList1.DataBind();
}
SQLSerDAL层
/// <summary>
/// 按订单时间降序获取订单列表的前几条(用户最新订单的显示)
/// </summary>
public IList<ETogoOrderInfo> GetListWithTime(int num)
{
IList<ETogoOrderInfo> infos = new List<ETogoOrderInfo>();
SqlParameter parameter=new SqlParameter("@num",SqlDbType.Int,4);
parameter.Value = num;
string sql = "select top 10 UserName,orderTime,TotalPrice,"
+"(select top 1 PName from EFoodInOrder where EFoodInOrder.OrderID=ETogoOrder.OrderID) AS orderfood "
+" from ETogoOrder order by orderTime desc";
using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.Text, sql , parameter))
{
while (dr.Read())
{
ETogoOrderInfo info = new ETogoOrderInfo();
info.UserName = HJConvert.ToString(dr["UserName"]);
info.orderTime = HJConvert.ToDateTime(dr["orderTime"]);
info.TotalPrice = HJConvert.ToDecimal(dr["totalprice"]);
info.orderfood = HJConvert.ToString(dr["orderfood"]);
infos.Add(info);
}
}
return infos;
}