天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用User Control做HTML生成

  User Control大家肯定不會(huì)陌生,在使用ASP.NET的過程中,除了ASPx頁(yè)面,最常見的就莫過于ascx了。ascx是一個(gè)有獨(dú)立邏輯的組件,提供了強(qiáng)大的復(fù)用特性,合理使用,能夠大大提高開發(fā)效率。通過User Control直接生成HTML內(nèi)容其實(shí)已經(jīng)是一個(gè)比較常用的技巧了(尤其在AJAX時(shí)代),不過網(wǎng)絡(luò)上這方面的內(nèi)容比較少,很多人還是在苦苦地拼接字符串,因此在這里我通過一個(gè)實(shí)例簡(jiǎn)單介紹一下這個(gè)技巧。

  對(duì)一個(gè)對(duì)象(文章,圖片,音樂,etc.)進(jìn)行評(píng)論是應(yīng)用中最常見的功能之一。首先,我們定義一個(gè)Comment類,以及其中會(huì)用到的“獲取”方法:

public partial class Comment
{
public DateTime CreateTime { get; set; }

public string Content { get; set; }
}

public partial class Comment
{
private static List<Comment> s_comments = new List<Comment>
{
new Comment
{
CreateTime = DateTime.Parse("2007-1-1"),
Content = "今天天氣不錯(cuò)"
},
new Comment
{
CreateTime = DateTime.Parse("2007-1-2"),
Content = "挺風(fēng)和日麗的"
},
new Comment
{
CreateTime = DateTime.Parse("2007-1-3"),
Content = "我們下午沒有課"
},
new Comment
{
CreateTime = DateTime.Parse("2007-1-1"),
Content = "這的確挺爽的"
}
};

public static List<Comment> GetComments(int pageSize, int pageIndex, out int totalCount)
{
totalCount = s_comments.Count;

List<Comment> comments = new List<Comment>(pageSize);

for (int i = pageSize * (pageIndex - 1);
i < pageSize * pageIndex && i < s_comments.Count; i++)
{
comments.Add(s_comments[i]);
}

return comments;
}
}

  為了顯示一個(gè)評(píng)論列表,我們可以使用一個(gè)用戶控件(ItemComments.ASPx)來(lái)封裝。自然,分頁(yè)也是必不可少的:

<ASP:Repeater runat="server" ID="rptComments">
<ItemTemplate>
時(shí)間:<%# (Container.DataItem as Comment).CreateTime.ToString() %><br />
內(nèi)容:<%# (Container.DataItem as Comment).Content %>
</ItemTemplate>

<SeparatorTemplate>
<hr />
</SeparatorTemplate>
<FooterTemplate>
<hr />
</FooterTemplate>

</ASP:Repeater>

<% if (this.PageIndex > 1)
{ %>
<a href="/ViewItem.ASPx?page=<%= this.PageIndex - 1 %>" title="上一頁(yè)">上一頁(yè)</a>&nbsp;
<% } %>

<% if (this.PageIndex * this.PageSize < this.TotalCount)
{ %>
<a href="/ViewItem.ASPx?page=<%= this.PageIndex + 1 %>" title="上一頁(yè)">下一頁(yè)</a>
<% } %>

  還有:

public partial class ItemComments : System.Web.UI.UserControl
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);

this.rptComments.DataSource = Comment.GetComments(this.PageSize,
this.PageIndex, out this.m_totalCount);
this.DataBind();

}

public int PageIndex { get; set; }

public int PageSize { get; set; }

private int m_totalCount;
public int TotalCount
{
get
{
return this.m_totalCount;
}
}
}

  然后再頁(yè)面(ViewItem.ASPx)中使用這個(gè)組件:

<div id="comments"><demo:ItemComments ID="itemComments" runat="server" /></div>

  以及:

public partial class ViewItem : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.itemComments.PageIndex = this.PageIndex;
}

protected int PageIndex
{
get
{
int result = 0;
Int32.TryParse(this.Request.QueryString["page"], out result);

return result > 0 ? result : 1;
}
}
}

  打開ViewItem.ASPx之后效果如下:

  這張頁(yè)面的功能非常簡(jiǎn)單,那就是察看評(píng)論。當(dāng)前評(píng)論的頁(yè)碼會(huì)使用QueryString的page項(xiàng)進(jìn)行指定,然后在ViewItem.ASPx里獲取到并且設(shè)置ItemComments.ascx控件的屬性。ItemComments控件會(huì)根據(jù)自身屬性來(lái)獲取數(shù)據(jù),進(jìn)行綁定,至于顯示內(nèi)容,全都定義在ascx中了。由于需要分頁(yè)功能,這個(gè)評(píng)論控件中還包含了上一頁(yè)和下一頁(yè)的鏈接,他們鏈接的目標(biāo)很簡(jiǎn)單,就是ViewItem.ASPx頁(yè),并且加上頁(yè)碼的Query String而已。

NET技術(shù)使用User Control做HTML生成,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 我强进了老师身体在线观看 | 欧美激情视频一区 | 日本人吃奶玩奶虐乳 | 国产精品久久久久激情影院 | 伊人亚洲综合网色 | 国产黄大片在线视频 | 亚洲在线视频自拍精品 | 国产一区二区免费在线观看 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 2019伊人查蕉在线观看 | 青柠在线观看免费高清电视剧荣耀 | 久久99亚洲AV无码四区碰碰 | 在线观看免费视频播放视频 | 伦理片在线线手机版韩国免费6 | 欧美人妇无码精品久久 | 另类重口bdsm日本tv | 久久91精品国产91久 | wwwxxc| 好大好爽CAO死我了BL | 久久天堂网 | 毛片在线播放网址 | 最新高清无码专区在线视频 | 国产精品久久久久久久久免费下载 | 久久久久久久久久综合情日本 | 蜜芽视频在线观看视频免费播放 | 成人小视频在线观看免费 | 亚洲aaaa级特黄毛片 | 精品欧美小视频在线观看 | 亚洲熟妇AV乱码在线观看 | 亚洲色大成网站www久久九九 | 暖暖日本大全免费观看 | 精品手机在线视频 | 自拍视频亚洲综合在线精品 | 白丝女仆被强扒内裤 | 久久88综合| 日日噜噜夜夜狠狠扒开双腿 | 中文字幕国产视频 | 花蝴蝶在线观看免费中文版高清 | 国产精品综合AV一区二区国产馆 | 碰超成人在线公开免费视频 | 天美麻豆成人AV精品 |