当前位置:编程学习 > C#/ASP.NET >>

Table控件中添加Row

            DataTable mDTable = new M_DAL.DB_Admin().ReturnDTNoOrder(gstablename);
            DataTable dt=new M_DAL.DB_Admin().ReturnDataTable(gdtablename,"ZGBH='" + E_ID + "'");
            TableRow tr=new TableRow();
            for (int i = 0; i <= mDTable.Rows.Count - 1; i++)
            {

                if (mDTable.Rows[i]["XMSX"].ToString() != "5" && mDTable.Rows[i]["XMSX"].ToString() != "6" && mDTable.Rows[i]["GZXMDM"].ToString() != "")
                {
                     
                     if(k%4==0&&k!=0)
                     {

                         mTable.Rows.Add(tr);
                        
                         tr.Cells.Clear();
                         //tr = new TableRow();

[color=#FF0000]问题:这里是检索数据库,然后根据数据库中的记录来动态创建Table控件。有一个Row对象的实例,其中已经添加好数据,然后“mTable.Rows.Add(tr)”,添加到Table控件中。为了添加新的数据,然后"tr.Cells.Clear();",可这样以后在Table控件中刚刚添加的哪一行数据就没了。如果在添加完一行以后,“tr = new TableRow();”而不是“tr.Cells.Clear();”,那么这样原来刚刚添加的数据还有,而且还可以继续添加新的数据,请问这是什么原因???
[/color]
                     }

                     TableCell tc1=new TableCell();
                     tc1.Text=mDTable.Rows[i]["GZXMMC"].ToString()+":";
                     tr.Cells.Add(tc1);
                     TableCell tc2=new TableCell();
                     tc2.Text=dt.Rows[0][mDTable.Rows[i]["GZXMDM"].ToString()].ToString();
                     tr.Cells.Add(tc2);

                     k++;
                     j = i;
                }

            }

            if (j % 4 != 0)
            {
                mTable.Rows.Add(tr);
            }
        } --------------------编程问答-------------------- tr = new TableRow();等于你又新建了一行啊。 --------------------编程问答-------------------- 你应该把tr的定义TableRow tr=new TableRow();放到for循环里面
否则你永远只有一行 --------------------编程问答-------------------- 只有调用一次row.Add()方法才能把tr添加到table中,row.add()是可以重复添加,table中可以出现相同的row --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,