我本想这样做:
<% for (int i=0; i <8; i++) { %>
   <asp:datalist id="MyList1"...
<% }%>,但是这个id不知道怎么写。请大虾指点!或者是否有更好的方法。谢谢。

解决方案 »

  1.   

    不喜欢这种写法,简直就是制造麻烦
    Page_Load:
    {
       for(int i=0;i<8;i++)
       {
             DataList newDL = new DataList();
             newDL.ID = "MyDL"+i.ToString();
             Page.Controls[1].Controls.Add(newDL);
        }
    }
      

  2.   

    给你一个例子
    先在前台写:
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <TABLE id="Table1" style="Z-INDEX: 102; LEFT: 16px; POSITION: absolute; TOP: 24px" cellSpacing="1"
    cellPadding="1" width="300" border="1" runat="server">
    </TABLE>
    </FONT>
    </form>
     
    后台:
    protected System.Web.UI.HtmlControls.HtmlTable Table1;
     
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    CreatedTextBoxs(3);
    }
     
    public void CreatedTextBoxs(int count)
    {
    TextBox txt;
    HtmlTableRow r = new HtmlTableRow();
    for(int i=0;i<count;i++)
    {
    HtmlTableCell c = new HtmlTableCell();
    txt=new TextBox();
    txt.ID = "txt_" + i.ToString();
    txt.Text = "文本框_" + i.ToString();
    c.Controls.Add(txt);
    r.Cells.Add(c);
    //this.Page.Controls[1].Controls.Add(txt);
    }
    this.Table1.Rows.Add(r);
     
    HtmlTableRow r2 = new HtmlTableRow();
    for(int j = 3; j < 6; j++)
    {
    HtmlTableCell c2 = new HtmlTableCell();
    txt=new TextBox();
    txt.ID = "txt_" + j.ToString();
    txt.Text = "文本框_" + j.ToString();
    c2.Controls.Add(txt);
    r2.Cells.Add(c2);
    //this.Page.Controls[1].Controls.Add(txt);
    }
    this.Table1.Rows.Add(r2);
     
    HtmlTableRow r3 = new HtmlTableRow();
    HtmlTableCell c3 = new HtmlTableCell();
    Button btn = new Button();
    btn.ID = "btn_1";
    btn.Text = "按钮";
    btn.Width = 60;
    btn.Height = 20;
    btn.Click += new EventHandler(this.btn_1_Click);
    c3.Controls.Add(btn);
    c3.ColSpan = 3;
    c3.Align = "center";
    r3.Cells.Add(c3);
    this.Table1.Rows.Add(r3);
    //this.Page.Controls[1].Controls.Add(btn);
    }
     
    private void btn_1_Click(Object sender,EventArgs e) 
    {
    Response.Write("<script language=javascript>alert('"+((TextBox)Page.Controls[1].FindControl("txt_0")).Text+"');</script>");
    }