国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

讓aspx頁面自主控制調用記錄的數量,類型,隨時更改,不用重新編譯的實現方法

2020-01-18 00:39:55
字體:
來源:轉載
供稿:網友
然而,殺雞焉用牛刀,對于小型站點,我們完全可以從.net強大的功能中,翻出一些來方便我們使用.
我們知道一個頁面經常會調用很多數據,有列表,有單條的,特別是列表,我們經常為不同的列表在.cs文件寫不同的方法,一一采用"列表.DataSource=數據源;列表.DataBind();來完成綁定,這令到我們的 cs頁面雍腫不堪!!!我經常有要推倒重來的沖動,但周而復始,我又寫出一堆拉圾-_-!.好吧,這次我決定只寫一個方法,不到15行的方法,就滿足整個頁面文章的調用.

我們需要用到的常識有"后期綁定","先運行CS再aspx",相信大家都已經具備.我們言歸正傳:
第一步:首先在cs中定義一個受保護的方法:
復制代碼 代碼如下:

/// <summary>
/// 獲取新聞數據列表
/// </summary>
/// <param name="num">請求數量</param>
/// <param name="cateId">類別ID</param>
/// <param name="isTop">是否置頂</param>
/// <param name="isCommend">是否推薦</param>
/// <returns>一個新聞數據集,News是新聞,當然,List<XXXX>名稱取決于你的數據源</returns>
protected List<News> GetNewsData(int num,int cateId,int isTop,int isCommend){
if (num < 0) num = 0;
List<News> result = new List<News>();
Expression<Func<News, bool>> expr = PredicateExtensionses.True<News>();
if (isPic) {
expr = expr.And(c => c.IsPic == 1);
}
if (cateId > 0) {
expr = expr.And(c => c.cateId == cateId);
}
if (isTop > -1) {
expr = expr.And(c => c.IsTop == isTop);
}
if (isCommend > -1) {
expr = expr.And(c => c.IsCommend == isCommend);
}
return nm.AllNews.Where(expr).OrderByDescending(c=>c.ID).Take(num).ToList();
}

第二步:在Page_Load方法中,調用DataBind();
復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}

以上是我方法的全部,這里要說一下的是調用業(yè)務邏輯中一個創(chuàng)建表達式樹的公共類,這個類在這里(//www.survivalescaperooms.com/article/28043.htm ),及通用業(yè)務邏輯類;
第三步,接下來是我們的aspx調用了.這里我用最簡單的Repeater來說明!
復制代碼 代碼如下:

<asp:Repeater ID="Repeater6" runat="server" DataSource='<%#GetNewsData(10,3548,-1,-1)%>'>
<ItemTemplate>
<%#Eval("Subject")%>
</ItemTemplate>
</asp:Repeater>

好了,所有工作結束.以后要調用其它的類別,或者數量要改變時,只需要在頁面上改動就行了,不需要改動.cs和編譯!
是不是挺方便?
關于DataBind()的說明,為什么要在Page_load中寫DataBind(),這是提前給數據源以數據!否則,因為后期綁定的關系,會令到數據控件找不到數據源而報錯!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 无为县| 海安县| 科尔| 高陵县| 保定市| 瓮安县| 灵丘县| 长垣县| 金坛市| 偃师市| 西华县| 朝阳市| 天长市| 苍梧县| 新化县| 镇平县| 犍为县| 宁国市| 堆龙德庆县| 德化县| 咸阳市| 兴安盟| 琼海市| 清原| 临西县| 夏邑县| 会昌县| 彩票| 镇江市| 大田县| 靖安县| 滁州市| 石柱| 托克逊县| 习水县| 岢岚县| 社旗县| 平和县| 东安县| 新龙县| 屏山县|