日期:2014-05-18  浏览次数:20362 次

帮偶看看asp.net显示表格滴问题哈!-_-!
用asp.net输出  
  ------------------------------  
  第一 aaaa A 001  
  002 003  
  003  
 
  bbbb B 001
  002
   
  ------------------------------  
  第二 aaa A1 001  
  002
   
  bbb A2 111  
  222
  333  
------------------------------ 
这样的表格其中每列都是动态的,就好像是个树形滴结构,然后用table滴形式显示出来,第二列是根据第一列得出滴,第三列又是根据第二列得出滴,这样滴表格如何用response.write("<table>")滴方式打出来捏(因为偶一直用这样滴方式输出显示table,觉得比控件灵活),或者有米一个更好滴方法,可以很灵活滴显示出来捏,希望帅哥美女们帮帮忙哈,郁闷死咯!

------解决方案--------------------
可以动态改变数据集。另外可以用你那种方式,只要知道结构,有什么不可以构造出来的?不过那种方式维护起来比较麻烦
------解决方案--------------------
可以用DataList,在<headerTemplate>里写<table>,在<ItemTemplate>里写<tr><td></td></tr>,即表的内容,在<FooterTemplate>里写</table>就形成一个表格了。
------解决方案--------------------
我想我明白你的意思了,为什么不用TreeView控件呢,专门用来显示这种树形结构的数据的。
------解决方案--------------------
用递归做,我整过一个,不过是用Table控件做的,下面是代码
C# code
 
    private int totalLevel = 1; //最大产品树级数
    private DataView dvstore;  //表视图

    private void DrawTheTable()
    {
      Tbl2.CssClass = "store";
      TableRow tr = new TableRow();
      tr.BackColor = Color.Gray;
      tr.ForeColor = Color.White;
      TableCell tc5 = new TableCell();
      TableCell tc1 = new TableCell();
      tc5.ColumnSpan = totalLevel;
      tc5.Text = "产品类别";
      tc5.Width = 100 * totalLevel;
      tc1.Text = "产品编号";
      tr.Cells.Add(tc5);
      tr.Cells.Add(tc1);
      Tbl2.Rows.Add(tr);
      DrawTheTableRows(dvstore, "0", 0, new TableRow());
    }
    private void DrawTheTableRows(DataView dv, string parentNo, int level, TableRow tr)
    {
      dv.Sort = "ParentNo";
      DataRowView[] drvs = dv.FindRows(parentNo);

      if (drvs.Length > 0)
      {
        for (int i = 0; i < drvs.Length; i++)
        {
          TableRow tbr;
          if (i != 0)
          {
            tbr = new TableRow();
          }
          else
          {
            tbr = tr;
          }
          //判断是不是组,需要你自己做算法,比如可以用FindRows方法查看parentno是这个id的记录是是否大于1
          if (Convert.ToBoolean(drvs[i]["IsGroup"].ToString()))
          {
            TableCell tc = new TableCell();
            tc.BackC