asp.net IList查询数据后格式化数据再绑定控件

 更新时间:2009年11月20日 12:20:43   作者:   我要评论
这篇文章送给.net初学者或者遇到类似问题的朋友,就是IList如何格式化数据再绑定,我看到网上没有多少朋友讲到这方面的最基本的问题,现在我简单说说吧,代码我就截取其中一些讲,如果不明白的朋友可以留言或者联系我。
一、先讲最基本的 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的绑定效果图,完毕!算是菜鸟与菜鸟之间的交流吧。

相关文章

  • DropDownList添加客户端下拉事件操作

    DropDownList添加客户端下拉事件操作

    我们知道,DropDownList下拉框是一个服务器控件,有时候,有些朋友为了方便绑定DropDownList下拉框的选项,但又想在DropDownList实现客户端的下拉事件,那该怎么实现呢?
    2015-09-09
  • .NET开发人员关于ML.NET的入门学习

    .NET开发人员关于ML.NET的入门学习

    随着谷歌,Facebook发布他们的工具机器学习工具Tensorflow 2和PyTorch,微软也发布了ML.NET 1.0。可以说2019年是机器学习社区普及化的一年,下面小编向大家简单介绍一下关于ML.NET的入门学习
    2019-05-05
  • 静态utf-8编码在项目传值出现中文乱码现象

    静态utf-8编码在项目传值出现中文乱码现象

    参考的美工静态页面是utf-8格式的,当此编码拿到项目中后,utf-8编码的系统,加载页面时,会出现样式问题,比如不能正常居中等
    2013-06-06
  • ASP.NET GridView控件在列上格式化时间及DataFormatString使用

    ASP.NET GridView控件在列上格式化时间及DataFormatString使用

    在GridView绑定日期格式的时候,金沙国际官网中的日期为2008-07-04,而GridView显示的是2007-07-04 000000,多了后面一截很不美观,想把它去掉不知道有什么好的方法,感兴趣的朋友可以了解本文,或许对你有所帮助
    2013-01-01
  • ADO.NET之连接池技术的使用详解

    ADO.NET之连接池技术的使用详解

    本篇文章是对连接池技术的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • ASP.NET 动态写入服务器端控件

    ASP.NET 动态写入服务器端控件

    使用Asp.net进行开发时,因为某些需求原因,需要在页面中动态添加控件。当然,这些控件可以是普通的html标签,也可以是Asp.net独有的服务器端控件。
    2009-04-04
  • ASP.NET Core环境变量和启动设置的配置教程

    ASP.NET Core环境变量和启动设置的配置教程

    这篇文章主要为大家详细介绍了ASP.NET Core环境变量和启动设置的配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Asp.net 在三层架构中事务的使用实例代码

    Asp.net 在三层架构中事务的使用实例代码

    再我知道的.net中,执行事务有两种方法,一种是自动事物,使用起来相当简单,但是需要配置服务器,如果你用的是web共享主机,即没有权限配置自己的服务器,那就没必要用这种了,接下了我讲下.net中最普通的事务SqlTransaction
    2012-10-10
  • asp.net session的使用与过期实例代码

    asp.net session的使用与过期实例代码

    本文章来简单的介绍asp.net中session常见两种用法,一种是session使用如何创建,另一种是告诉你如何判断session过期了,有需要了解的朋友可以参考一下
    2013-08-08
  • 利用委托把用户控件的值显示于网页案例应用

    利用委托把用户控件的值显示于网页案例应用

    用户控件(UserControl)是集成一个功能,需要处理好的数据,然后存金沙国际官网中并显示于网页上,让用户能检测到处理的数据情况,接下来将介绍利用委托把用户控件的值显示于网页上,感兴趣的朋友可以了解下
    2013-02-02

最新评论