时间:2021-05-28
 一、先讲最基本的 DataSet绑定操作,GridView为例。 
当操作查询得一个 DataSet ds 后,可以进行一些数据的格式化,如: 
复制代码 代码如下: 
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> 
/// 生成日期随机码 
/// </summary> 
/// <returns></returns> 
public static string GetRamCode() 
{
#region
return DateTime.Now.ToString("yyyyMMddHHmmssffff"); 
#endregion
}
}
像这样很快就能进行一些数据的格式化并绑定到控件了。
二、现在讲下我主要想讲的内容,如果我们用Ilist 查询得数据后,想格式化一些字符串,以达到自己想要的显示效果,我们该怎么办呢?先看下效果图再给您答案。 
比如我们在做无限分类的时候 往往想让数据如上图所显示,我们又该怎么做呢。 
刚上让面的DataSet写了些格式化代码,现在相信大家都想知道Ilist又该怎么操作对吧?
泛型的功能 强大我在这里就不说了,现在说重点,主要有两种方法实现, 
一,把Ilist得的数据转为 DataSet的,这样你又可以重新回到熟悉的操作了 
IList 转 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啊,不想转来转去的,难道就没有好的办法? 
哈哈,答案肯定是有的,也是最简单的,往往是初学的朋友不懂解IList才现在种种疑惑,
现在讲IList 对象类的操作 
还是上面的例子
比如当查询得一个
复制代码 代码如下: 
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还是上面的那个。经过这样的简单处理,我们就可以格式化 栏目名称了再分下DataList的绑定效果图,完毕!算是菜鸟与菜鸟之间的交流吧。 
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以下是ASP.NET基本控件的数据绑定:webconfig:1.gridview:SqlConnectionconn=newSqlConnection(Sy
本文的初衷在于对Asp.net常用数据绑定控件进行一个概览性的总结,主要分析各种数据绑定控件各自的优缺点,以便在实际的开发中选用合适的控件进行数据绑定,以提高开
1.数据控件绑定时格式化日期方法:复制代码代码如下:
本文实例讲述了ASP.NET中repeater控件用法。分享给大家供大家参考。具体实现方法如下:repeater绑定数据:复制代码代码如下:protectedv
本文实例讲述了asp.net简单页面控件赋值的方法。分享给大家供大家参考,具体如下://////赋值表名,控件名,要查询的唯一数据///protectedvoi