前两天一个朋友问我,他要DataGrid第一列显示序列号,就是由1开始每次递增1这样的序列号排列,但他怎么也找不到方法,如果绑定ID,一对数据库中的数据进行操作,比如删除,那么ID值就不会按照每次递增1这样排列,于是我给了他以下代码:
forint 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中的字段不是固定的,可以是你设计数据库里面任意的字段,自己安排好即可。
        当然上述代码的妙用很多,欢迎大家共同交流^_^
posted on 2005-11-14 19:40  jsx  阅读(275)  评论(0)    收藏  举报