前两天一个朋友问我,他要DataGrid第一列显示序列号,就是由1开始每次递增1这样的序列号排列,但他怎么也找不到方法,如果绑定ID,一对数据库中的数据进行操作,比如删除,那么ID值就不会按照每次递增1这样排列,于是我给了他以下代码:
for( int i=0;i<dt.Rows.Count;i++ )
dt.Rows[i]["ID"] = i+1; 这里面dt是一个获取数据后的DataTable,下面同。我朋友看后说,原来这么简单,就是没有想到啊。呵呵,确实就是这么简单,从代码复杂度来说,可以说没有,但是如果善于利用这段代码,可以收到不错的效果。
如果在新闻系统,想让前三天发布的信息后面显示new这个图片;如果单从数据库只能获得某一类的id值,但是要显示这段id所对应的Name等等,都可以用到此类方法来实现,比如如下代码:
for(int i = 0;i<dt.Rows.Count;i++)
{ DateTime t = (DateTime)dt.Rows[i]["PublishDate"];//获取发布的时间
if(t.AddDays(3).CompareTo(DateTime.Now)>0) //与当前时间比对,此代码意义在于如果是三天内发布的信息,就得到new的Url
{
dt.Rows[i]["ImageUrl"] = "../../images/new.gif";
}
else
{
dt.Rows[i]["ImageUrl"] = "../../images/sign_new_tm.gif";
}
switch(dt.Rows[i]["TypeId"].ToString())//从TypeId获取TypeName
{
case "1": dt.Rows[i]["TypeName"] = "TypeName1";break;
case "2": dt.Rows[i]["TypeName"] = "TypeName2";break;
//
..
case "n": dt.Rows[i]["TypeName"] = "TypeNameN";break;
}
}
其中这些DataTable中的字段不是固定的,可以是你设计数据库里面任意的字段,自己安排好即可。
当然上述代码的妙用很多,欢迎大家共同交流^_^
for( int i=0;i<dt.Rows.Count;i++ )
dt.Rows[i]["ID"] = i+1; 如果在新闻系统,想让前三天发布的信息后面显示new这个图片;如果单从数据库只能获得某一类的id值,但是要显示这段id所对应的Name等等,都可以用到此类方法来实现,比如如下代码:
for(int i = 0;i<dt.Rows.Count;i++)
{ DateTime t = (DateTime)dt.Rows[i]["PublishDate"];//获取发布的时间
if(t.AddDays(3).CompareTo(DateTime.Now)>0) //与当前时间比对,此代码意义在于如果是三天内发布的信息,就得到new的Url
{
dt.Rows[i]["ImageUrl"] = "../../images/new.gif";
}
else
{
dt.Rows[i]["ImageUrl"] = "../../images/sign_new_tm.gif";
}
switch(dt.Rows[i]["TypeId"].ToString())//从TypeId获取TypeName
{
case "1": dt.Rows[i]["TypeName"] = "TypeName1";break;
case "2": dt.Rows[i]["TypeName"] = "TypeName2";break;
//
..
case "n": dt.Rows[i]["TypeName"] = "TypeNameN";break;
}
}其中这些DataTable中的字段不是固定的,可以是你设计数据库里面任意的字段,自己安排好即可。
当然上述代码的妙用很多,欢迎大家共同交流^_^

浙公网安备 33010602011771号