asp.net IList查詢數(shù)據(jù)后格式化數(shù)據(jù)再綁定控件
當(dāng)操作查詢得一個 DataSet ds 后,可以進(jìn)行一些數(shù)據(jù)的格式化,如:
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["Depth"].ToString() != "1")
{
dr["ColumnName"] = StringHelper.StringOfChar(Convert.ToInt32(dr["Depth"]) - 1, " ") + "├ " + dr["ColumnName"];
}
}
GridView1.DataSource = ds;
GridView1.DataBind();
public static class StringHelper
{
/// <summary>
/// 生成指定長度的字符串,即生成strLong個str字符串
/// </summary>
/// <param name="strLong">生成的長度</param>
/// <param name="str">以str生成字符串</param>
/// <returns></returns>
public static string StringOfChar(int strLong, string str)
{
string ReturnStr = "";
for (int i = 0; i < strLong; i++)
{
ReturnStr += str;
}
return ReturnStr;
}
/// <summary>
/// 生成日期隨機(jī)碼
/// </summary>
/// <returns></returns>
public static string GetRamCode()
{
#region
return DateTime.Now.ToString("yyyyMMddHHmmssffff");
#endregion
}
}
像這樣很快就能進(jìn)行一些數(shù)據(jù)的格式化并綁定到控件了。
二、現(xiàn)在講下我主要想講的內(nèi)容,如果我們用Ilist 查詢得數(shù)據(jù)后,想格式化一些字符串,以達(dá)到自己想要的顯示效果,我們該怎么辦呢?先看下效果圖再給您答案。
比如我們在做無限分類的時候 往往想讓數(shù)據(jù)如上圖所顯示,我們又該怎么做呢。
剛上讓面的DataSet寫了些格式化代碼,現(xiàn)在相信大家都想知道Ilist又該怎么操作對吧?
泛型的功能 強(qiáng)大我在這里就不說了,現(xiàn)在說重點(diǎn),主要有兩種方法實(shí)現(xiàn),
一,把Ilist得的數(shù)據(jù)轉(zhuǎn)為 DataSet的,這樣你又可以重新回到熟悉的操作了
IList 轉(zhuǎn) DataSet 類(這個是我引用別人的 ^ ^)
public static DataSet ConvertToDataSet<T>(IList<T> list)
{
if (list == null || list.Count <= 0)
{
return null;
}
DataSet ds = new DataSet();
DataTable dt = new DataTable(typeof(T).Name);
DataColumn column;
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
foreach (T t in list)
{
if (t == null)
{
continue;
}
row = dt.NewRow();
for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
{
System.Reflection.PropertyInfo pi = myPropertyInfo[i];
string name = pi.Name;
if (dt.Columns[name] == null)
{
column = new DataColumn(name, pi.PropertyType);
dt.Columns.Add(column);
}
row[name] = pi.GetValue(t, null);
}
dt.Rows.Add(row);
}
ds.Tables.Add(dt);
return ds;
}
然后
DataSet ds = ConvertToDataSet(b.ListColumn());
看,又回來熟悉的操作了吧,但是,這樣做我們啟不是走彎路了,為啥不直接用 DataSet就得了?沒錯,我們走彎路了............我想用 IList啊,不想轉(zhuǎn)來轉(zhuǎn)去的,難道就沒有好的辦法?
哈哈,答案肯定是有的,也是最簡單的,往往是初學(xué)的朋友不懂解IList才現(xiàn)在種種疑惑,
現(xiàn)在講IList 對象類的操作
還是上面的例子
比如當(dāng)查詢得一個
BLL b = new BLL();
b.ListColumn();
我們要綁定上圖所示的只需這樣做
IList<Qzzm.Model.ColumnInfo> list = new List<Qzzm.Model.ColumnInfo>();
foreach (Qzzm.Model.ColumnInfo m in b.ListColumn())
{
if (m.Depth.ToString() != "1")
{
m.ColumnName = StringHelper.StringOfChar(Convert.ToInt32(m.Depth) - 1, " ") + "├ " + m.ColumnName + "<br>";
}
list.Add(m);
}
DataList1.DataSource = list;
DataList1.DataBind();
StringHelper還是上面的那個。經(jīng)過這樣的簡單處理,我們就可以格式化 欄目名稱了再分下DataList的綁定效果圖,完畢!算是菜鳥與菜鳥之間的交流吧。

- asp.net DataFormatString格式化GridView
- asp.net中各種類型的JSON格式化
- ASP.NET GridView控件在列上格式化時間及DataFormatString使用
- Asp.net中時間格式化的6種方法詳細(xì)總結(jié)
- asp.net頁面中時間格式化的示例
- asp.net+js實(shí)現(xiàn)金額格式化
- 在ASP.NET 2.0中操作數(shù)據(jù)之十一:基于數(shù)據(jù)的自定義格式化
- 在ASP.NET 2.0中操作數(shù)據(jù)之二十七:創(chuàng)建自定義排序用戶界面
- 在ASP.NET 2.0中操作數(shù)據(jù)之二十八:GridView里的Button
- 在ASP.NET 2.0中操作數(shù)據(jù)之二十九:用DataList和Repeater來顯示數(shù)據(jù)
- 在ASP.NET 2.0中操作數(shù)據(jù)之三十:格式化DataList和Repeater的數(shù)據(jù)
相關(guān)文章
ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法
本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調(diào)用,從而達(dá)到減少重復(fù)代碼,快速開發(fā)的目的,希望對大家有所幫助。2016-04-04asp.net 在DNN模塊開發(fā)中遇到的resx怪問題
最近我遇到2個小問題,在此記錄一下。這是我發(fā)的帖子2008-11-11asp.net FileUpload控件實(shí)現(xiàn)文件格式判斷與文件大小限制
這篇文章主要介紹了有關(guān)asp.net fileupload控件判斷文件格式,以及進(jìn)行文件大小限制的方法,可以在web.config中配置,也可以在.cs文件中實(shí)現(xiàn),需要的朋友參考下2014-11-11asp.net 數(shù)據(jù)綁定 使用eval 時候報(bào) 字符文本中的字符太多 問題的解決方法
asp.net 數(shù)據(jù)綁定 使用eval 時候報(bào) 字符文本中的字符太多 問題解決,需要的朋友可以參考下。2010-09-09ASP.NET與MySQL數(shù)據(jù)庫簡明圖示入門教程
ASP.NET與MySQL數(shù)據(jù)庫簡明圖示入門教程...2006-09-09.NET實(shí)現(xiàn)可交互的WINDOWS服務(wù)的實(shí)例代碼
那么來看一下如何才能實(shí)現(xiàn)一個可交互的服務(wù)呢。步驟與實(shí)現(xiàn)基本的服務(wù)一樣2013-03-03