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

使用User Control做HTML生成

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

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

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 = "今天天氣不錯"
},
new Comment
{
CreateTime = DateTime.Parse("2007-1-2"),
Content = "挺風和日麗的"
},
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;
}
}

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

<ASP:Repeater runat="server" ID="rptComments">
<ItemTemplate>
時間:<%# (Container.DataItem as Comment).CreateTime.ToString() %><br />
內容:<%# (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="上一頁">上一頁</a>&nbsp;
<% } %>

<% if (this.PageIndex * this.PageSize < this.TotalCount)
{ %>
<a href="/ViewItem.ASPx?page=<%= this.PageIndex + 1 %>" title="上一頁">下一頁</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;
}
}
}

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

<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之后效果如下:

  這張頁面的功能非常簡單,那就是察看評論。當前評論的頁碼會使用QueryString的page項進行指定,然后在ViewItem.ASPx里獲取到并且設置ItemComments.ascx控件的屬性。ItemComments控件會根據自身屬性來獲取數據,進行綁定,至于顯示內容,全都定義在ascx中了。由于需要分頁功能,這個評論控件中還包含了上一頁和下一頁的鏈接,他們鏈接的目標很簡單,就是ViewItem.ASPx頁,并且加上頁碼的Query String而已。

NET技術使用User Control做HTML生成,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 大胸美女脱内衣黄网站 | 免费的好黄的漫画 | 伊人yinren6综合网色狠狠 | 97碰成视频免费 | 亚洲精品在线观看视频 | 国产精品无码人妻99999 | 亚洲免费人成在线视频观看 | 国产精品三级在线观看 | 蜜桃成熟时2在线观看完整版hd | 男人一进一出桶女人视频 | 中文字幕无码亚洲字幕成A人蜜桃 | 久久中文字幕人妻熟AV女蜜柚M | 国产精品亚洲专区在线播放 | 少妇伦子伦精品无码 | 俄罗斯女人与马Z00Z视频 | 伊人久久久久久久久久 | 久久精品视频在线直播6 | 欧美97色伦影院在线观看 | 老师在讲桌下边h边讲课 | 国产极品白嫩超清在线观看 | 国产亚洲精品高清视频免费 | 日日摸夜夜添无码AVA片 | 秋霞三级理伦免费观看 | 亚洲 欧美 清纯 校园 另类 | 91国偷自产一区二区三区 | 野花社区视频WWW高清 | 祺鑫WRITEAS流出来了 | 人妻插B视频一区二区三区 人妻 中文无码 中出 | 中文字幕不卡在线高清 | 插我一区二区在线观看 | 成人中文字幕在线 | 午夜aaaa| 伊人影院亚洲 | 国精产品一区一区三区有限公司 | 小玲被公扒开腿 | 野花韩国在线观看 | 久久伊人精品青青草原2021 | 国产原创剧情麻豆在线 | 爱很烂qvod| 国产精品99久久久久久WWW | 蜜桃狠狠色伊人亚洲综合网站 |