解析常用代码
<asp:Repeater ID="rptList1" runat="server" onitemcommand="rptList_ItemCommand">
//Repeater 控件
//这里是头
<HeaderTemplate>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="ltable">
<tr>
<th width="6%">选择</th>
<th align="left">标题</th>
<th align="left" width="12%">所属类别</th>
<th align="left" width="16%">发布时间</th>
<th align="left" width="65">排序</th>
<th align="left" width="120">属性</th>
<th width="10%">操作</th>
</tr>
</HeaderTemplate>
//要重复的的内容 里面不能使用 <%%>
<ItemTemplate>
<tr>
<td align="center">
<asp:CheckBox ID="chkId" CssClass="checkall" runat="server" style="vertical-align:middle;" />
<asp:HiddenField ID="hidId" Value='<%#Eval("id")%>' runat="server" />
</td>
...
//这里和上面一样 要与头部对应设计自己的样式
...
</tr>
</ItemTemplate>
//底部 注 这里是数据循环以后在执行的 所以不能在绑定数据了不能使用<%#Eval("..")%>
<FooterTemplate>
<%#rptList1.Items.Count == 0 ? "<tr><td align=\"center\" colspan=\"7\">暂无记录</td></tr>" : ""%>
</table>
</FooterTemplate>
</asp:Repeater>
常用功能—分页
- 从请求 开始 以 article_list.aspx 为例
protected void Page_Load(object sender, EventArgs e)
{
....
this.pageSize = GetPageSize(10);
/*
private int GetPageSize(int _default_size)
{
int _pagesize;
if (int.TryParse(Utils.GetCookie("article_page_size", "DTcmsPage"), out _pagesize))
{
if (_pagesize > 0)
{
return _pagesize;
}
}
return _default_size;
}
*/
if (!Page.IsPostBack)
{
RptBind();
}
}
private void RptBind(int _channel_id, int _category_id, string _strWhere, string _orderby)
{
this.page = DTRequest.GetQueryInt("page", 1);
switch (this.prolistview)
{
case "Txt":
this.rptList2.Visible = false;
this.rptList1.DataSource = bll.GetList(_channel_id, _category_id, this.pageSize, this.page, _strWhere, _orderby, out this.totalCount);
this.rptList1.DataBind();
break;
}
txtPageNum.Text = this.pageSize.ToString();
string pageUrl = Utils.CombUrlTxt("article_list.aspx", "channel_id={0}&category_id={1}&keywords={2}&property={3}&page={4}",
_channel_id.ToString(), _category_id.ToString(), this.keywords, this.property, "__id__");
PageContent.InnerHtml = Utils.OutPageList(this.pageSize, this.page, this.totalCount, pageUrl, 8);
}
public static string OutPageList(int pageSize, int pageIndex, int totalCount, string linkUrl, int centSize)
{
if (totalCount < 1 || pageSize < 1)
{
return "";
}
int pageCount = totalCount / pageSize;
if (pageCount < 1)
{
return "";
}
if (totalCount % pageSize > 0)
{
pageCount += 1;
}
if (pageCount <= 1)
{
return "";
}
StringBuilder pageStr = new StringBuilder();
string pageId = "__id__";
string firstBtn = "<a href=\"" + ReplaceStr(linkUrl, pageId, (pageIndex - 1).ToString()) + "\">«上一页</a>";
string lastBtn = "<a href=\"" + ReplaceStr(linkUrl, pageId, (pageIndex + 1).ToString()) + "\">下一页»</a>";
string firstStr = "<a href=\"" + ReplaceStr(linkUrl, pageId, "1") + "\">1</a>";
string lastStr = "<a href=\"" + ReplaceStr(linkUrl, pageId, pageCount.ToString()) + "\">" + pageCount.ToString() + "</a>";
if (pageIndex <= 1)
{
firstBtn = "<span class=\"disabled\">«上一页</span>";
}
if (pageIndex >= pageCount)
{
lastBtn = "<span class=\"disabled\">下一页»</span>";
}
if (pageIndex == 1)
{
firstStr = "<span class=\"current\">1</span>";
}
if (pageIndex == pageCount)
{
lastStr = "<span class=\"current\">" + pageCount.ToString() + "</span>";
}
int firstNum = pageIndex - (centSize / 2);
if (pageIndex < centSize)
firstNum = 2;
int lastNum = pageIndex + centSize - ((centSize / 2) + 1);
if (lastNum >= pageCount)
lastNum = pageCount - 1;
pageStr.Append("<span>共" + totalCount + "记录</span>");
pageStr.Append(firstBtn + firstStr);
if (pageIndex >= centSize)
{
pageStr.Append("<span>...</span>\n");
}
for (int i = firstNum; i <= lastNum; i++)
{
if (i == pageIndex)
{
pageStr.Append("<span class=\"current\">" + i + "</span>");
}
else
{
pageStr.Append("<a href=\"" + ReplaceStr(linkUrl, pageId, i.ToString()) + "\">" + i + "</a>");
}
}
if (pageCount - pageIndex > centSize - ((centSize / 2)))
{
pageStr.Append("<span>...</span>");
}
pageStr.Append(lastStr + lastBtn);
return pageStr.ToString();
}