//保存
dsInfos.Save(dataSourceFilePath);
}
return XElement.Load(dataSourceFilePath);
}
public static string ToJSON(object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
//private static void GetJSON(XElement dsXML)
//{
// var dsLinq = (from x in dsXML.Descendants("DataTemp")
// select new DataSourceModel()
// {
// ID = x.Element("ID").Value,
// Group = x.Element("Group").Value,
// Colum1 = x.Element("Colum1").Value,
// Colum2 = x.Element("Colum2").Value,
// Colum3 = x.Element("Colum3").Value
// });
// int totalCount = dsLinq.Count();//記錄總數(shù),在此只起到示范作用,客戶端的記錄總數(shù)可以從JSON數(shù)據(jù)的data計(jì)數(shù)獲取
// System.Text.StringBuilder sb = new System.Text.StringBuilder();
// sb.Append("{");
// sb.Append("totalCount:");
// sb.Append(totalCount.ToString());
// sb.Append(",data:");
// sb.Append(ToJSON(dsLinq.ToList()));
// sb.Append("}");
//}
public bool IsReusable
{
get
{
return false;
}
}
}
//數(shù)據(jù)源結(jié)構(gòu)
public class DataSourceModel
{
public string ID { get; set; }
public string Group { get; set; }
public string Colum1 { get; set; }
public string Colum2 { get; set; }
public string Colum3 { get; set; }
}
}
上面我用XML模擬了一個(gè)數(shù)據(jù)源,正好順便嘗試了一下Linq to XML:)如果您是使用.NET2.0的話,也可改成XMLDocument的方式或者從自己的數(shù)據(jù)源獲取。
這里我們看一下基本效果:
基本狀態(tài):
如果超過相鄰頁數(shù)地閥值的頁碼用...替代:
下面我們升級(jí)一下,可以自定義沒頁顯示得條數(shù)和跳至的頁碼:
光這樣當(dāng)然是不夠的,如果用戶輸入了無效的值,會(huì)引發(fā)無效的服務(wù)器響應(yīng),我們需要在客戶端就過濾:
一共300條數(shù)據(jù),每頁10條,只能顯示30頁,要31頁當(dāng)然就錯(cuò)了。當(dāng)然這里我的驗(yàn)證過程只是提供了一條思路,還可以有更多的豐富。(咦?光影魔術(shù)手不注冊(cè)還會(huì)有水印?)
剛才我說的需要能自定義樣式,當(dāng)然也不能少:
或者這樣:
或者這樣:
新聞熱點(diǎn)
疑難解答
圖片精選