动态创建控件如何每隔2个控件换一行?有个网友说把table控件换成datalist,不知道行不行protected void AddTable() 
    {
        string sql = "select field_name,description,default_value,field_type from field ";
        DataTable tsql = OperateData.getRows(sql);
        TableRow tr = new TableRow();
        for (int i = 1; i < tsql.Rows.Count; i++)
        {
            string field_type=""+tsql.Rows[i]["field_type"];                       if (field_type == "TXT")
            {
                TableCell tc = new TableCell();
                TextBox tb = new TextBox();
                tb.ID = tsql.Rows[i]["field_name"] + "$C3T4L5$";
                tc.Controls.Add(tb); 
                tr.Cells.Add(tc);
            }
            else if (field_type == "OPT")
            {
                TableCell tc1 = new TableCell();
                DropDownList tb1 = new DropDownList();
                tb1.ID = tsql.Rows[i]["field_name"] + "$C3T4L5$";
                tc1.Controls.Add(tb1);
                tr.Cells.Add(tc1);
            }
            //Response.Write("<li>" + i);
            if(i% 2==0)
            {
                //Response.Write("<li>=" + i);
                Tables.Rows.Add(tr);//tables为table控件
            }
                
        }
    }

解决方案 »

  1.   

    先把html画出来,然后再后台动态生成相应的控件。
      

  2.   

    if(i% 2==0)
                {
                    //Response.Write("<li>=" + i);
                    Tables.Rows.Add(tr);//tables为table控件
                }
                string field_type=""+tsql.Rows[i]["field_type"];                       if (field_type == "TXT")
                {
                    TableCell tc = new TableCell();
                    TextBox tb = new TextBox();
                    tb.ID = tsql.Rows[i]["field_name"] + "$C3T4L5$";
                    tc.Controls.Add(tb); 
                    tr.Cells.Add(tc);
                }
                else if (field_type == "OPT")
                {
                    TableCell tc1 = new TableCell();
                    DropDownList tb1 = new DropDownList();
                    tb1.ID = tsql.Rows[i]["field_name"] + "$C3T4L5$";
                    tc1.Controls.Add(tb1);
                    tr.Cells.Add(tc1);
                }
     if(i% 2==0)
                {
                    //Response.Write("<li>=" + i);
                    Tables.Rows.Add(tr);//tables为table控件
                }先判断 但是要除0