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

JQuery 構建客戶/服務分離的鏈接模型中Table中的排序分析

但在這個模型中,由于不能利用這些控件,我們需要借助純Javascript和html靜態(tài)代碼來實現(xiàn),感覺好像挺麻煩的?其實呢......
分頁代碼既然由Webservice接口服務端中間層處理好回傳回來,那么我們的排序代碼也可以這樣的,只是在回傳前進行排序就ok了,下面就分析一下。
  看過上篇的文章,可以知道在Webservice接口服務端中間層處理數(shù)據(jù)是操縱泛型的List對象
代碼
復制代碼 代碼如下:
List<TB_WEB_NZ_INVESTMENT> list = new List<TB_WEB_NZ_INVESTMENT>();
list = objBusinessFacade.GetTB_WEB_NZ_INVESTMENT_CollectionByFlowID(FlowID);
return new JavaScriptSerializer().Serialize(list);

那么我們的排序代碼就嵌在 藍色行 和 紅色行 之間。
如何排序呢?List這個對象里面有個Sort()方法

顯然我們不能使用默認比較器來進行排序,因為如果這樣就達不到目的(我們需要在頁面點擊某列就按該列進行排序,而默認比較器就達不到這種精準的控制),注:這里并未采用在數(shù)據(jù)庫上進行排序,為什么?因為通過List泛型對象可以處理的事情就沒必要又要通過數(shù)據(jù)庫來解決。
List.Sort (泛型 IComparer)
IComparer 是接口由 System.Collections.Generic.List.Sort 和 System.Collections.Generic.List.BinarySearch 方法使用。它提供一種自定義集合排序順序的方法。
該接口有一個需要重載的方法 int Compare(a,b)
通過調(diào)整參數(shù)a,b的順序實現(xiàn)升序和降序排列
復制代碼 代碼如下:
public int Compare(obj x , obj y)
{
//如果比較的列所對應的表字段的數(shù)據(jù)類型是DateTime,不同的數(shù)據(jù)類型對應不同的
return DateTime.Compare(x,y); -- 升序
//return DateTime.Compare(y,x); -- 降序
}

開始構建中間層比較器對象
代碼
復制代碼 代碼如下:
/// <summary>
/// 對象【出資人】比較器
/// </summary>
public class ContributivePerson_INV_Comparer : IComparer<TB_WEB_NZ_INVESTMENT>
{
private ESortType m_ESortType = ESortType.ASC;
public ContributivePerson_INV_Comparer(ESortType eSortType)
{
m_ESortType = eSortType;
}
public int Compare(TB_WEB_NZ_INVESTMENT x, TB_WEB_NZ_INVESTMENT y)
{
int rtnCompare = 0; ;
switch (m_ESortType)
{
case ESortType.ASC:
rtnCompare = string.Compare(x.INV, y.INV);
break;
case ESortType.DESC:
rtnCompare = string.Compare(y.INV, x.INV);
break;
}//switch
return rtnCompare;
}
}//class
/// <summary>
/// 【余額繳付期限】比較器
/// </summary>
public class ContributivePerson_BALDEPER_Comparer : IComparer<TB_WEB_NZ_INVESTMENT>
{
private ESortType m_ESortType = ESortType.ASC;
public ContributivePerson_BALDEPER_Comparer(ESortType eSortType)
{
m_ESortType = eSortType;
}
public int Compare(TB_WEB_NZ_INVESTMENT x, TB_WEB_NZ_INVESTMENT y)
{
int rtnCompare = 0; ;
DateTime xDateTime = DateTime.Parse(x.BALDEPER.ToString());
DateTime yDateTime = DateTime.Parse(y.BALDEPER.ToString());
switch (m_ESortType)
{
case ESortType.ASC:
rtnCompare = DateTime.Compare(xDateTime, yDateTime);
break;
case ESortType.DESC:
rtnCompare = DateTime.Compare(yDateTime, xDateTime);
break;
}//switch
return rtnCompare;
}
}//class

從以上代碼中,我們構造了兩個比較器,分別是【出資人】,【余額繳付期限】
我們構造一個工廠方法,來方便調(diào)用
代碼
復制代碼 代碼如下:
/// <summary>
/// 對象排序比較器工廠
/// </summary>
public class ContributivePerson_SortComparerFactory
{
/// <summary>
///
/// </summary>
/// <param name="FieldName"></param>
/// <returns></returns>
public IComparer<TB_WEB_NZ_INVESTMENT> GetSortComparer(string FieldName, ESortType eSortType)
{
IComparer<TB_WEB_NZ_INVESTMENT> IComparer = null;
switch (FieldName)
{
case "BALDEPER"://余額繳付期限
IComparer = new ContributivePerson_BALDEPER_Comparer(eSortType);
break;
case "INV"://投資人
IComparer = new ContributivePerson_INV_Comparer(eSortType);
break;
}//switch
return IComparer;
}
}//class

下面我們進行運用,這個方法是一個Webservice接口端的新寫的方法,我們看見紅色代碼段是排序塊,綠色注解是過濾代碼塊(代碼已經(jīng)略去)
代碼
復制代碼 代碼如下:
/// <summary>
/// 分頁功能的表格填充服務端(帶排序)
/// </summary>
/// <param name="FlowID"></param>
/// <param name="PageCount">每頁數(shù)目</param>
/// <param name="CurrentPage">當前頁</param>
/// <param name="SortType">排序類型:"ASC" ,"DESC"</param>
/// <returns></returns>
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Load_ContributivePerson_Table_Sort(string FlowID, int PageCount,
int CurrentPage, string SortType, string SortFieldName)
{
List<TB_WEB_NZ_INVESTMENT> list = new List<TB_WEB_NZ_INVESTMENT>();
list = objBusinessFacade.GetTB_WEB_NZ_INVESTMENT_CollectionByFlowID(FlowID);
ContributivePerson_SortComparerFactory objFactory = new ContributivePerson_SortComparerFactory();
IComparer<TB_WEB_NZ_INVESTMENT> objSort = null;
if (SortType.ToUpper().Trim() == "ASC")
{
objSort = objFactory.GetSortComparer(SortFieldName,ESortType.ASC);
}
else if (SortType.ToUpper().Trim() == "DESC")
{
objSort = objFactory.GetSortComparer(SortFieldName, ESortType.DESC);
}
list.Sort(objSort);
//部分代碼略去,略去代碼可參看上篇文章
return new JavaScriptSerializer().Serialize(list);
}

通過添加比較器,我們達到了在泛型list對象上的隨心所欲的排序,而不需要通過SQL語句進行排序。在客戶端的頁面只要添加必要的參數(shù)就可以實現(xiàn)了,中間層服務端已經(jīng)實現(xiàn)了全部的核心,客戶端代碼只需要判別是哪個列要進行排序,同時注意【首頁】【】等按排序的順序翻頁即可,這里客戶端的代碼略去
效果圖:
按【余額繳付期限】列進行升序排列

 

按【投資人】降序排列

JavaScript技術JQuery 構建客戶/服務分離的鏈接模型中Table中的排序分析,轉載需保留來源!

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

主站蜘蛛池模板: 欧美最猛性XXXXX肛交 | 亚洲伊人久久网 | 久久综合久久鬼色 | 操他射他影院 | 免费无码又爽又黄又刺激网站 | 午夜欧洲亚洲AV永久无码精品 | 老头xxx | 伊人久久艹 | 精品久久久亚洲精品中文字幕 | 色www.亚洲免费视频 | 快播性爱电影 | 69夫妇交友群 | 国产在线精品亚洲第1页 | 国产精品久久一区二区三区蜜桃 | 鲁大师影院在线视频在线观看 | 韩国成人理伦片免费播放 | 日本无码毛片久久久九色综合 | 人妻体体内射精一区二区 | 高跟丝袜岳第一次 | 涩涩视频www在线观看入口 | 自拍黄色片 | 亚洲 欧美 国产 综合 在线 | 国产精品高清免费网站 | 亚洲欧美日韩一级特黄在线 | 亚洲精品免播放器在线观看 | 强奷表妺好紧2 | 毛茸茸womansex | 日本少妇无码精品12P | 一级做a爰片久久毛片一 | 在线 自拍 综合 亚洲 欧美 | 国产精品久久毛片A片软件爽爽 | 蜜芽最新域名解析网站 | 亚洲视频一 | 在教室轮流被澡高H林萌 | 精品国产免费人成视频 | 快穿女主有名器的H纯肉黄暴拉文 | 琪琪色原网20岁以下热热色原网站 | 狠狠操天天操夜夜操 | 超碰在线观看 | 伊人久久综合谁合综合久久 | 久久婷五月综合色啪网 |