转到page_load事件中实现你的逻辑

解决方案 »

  1.   

    try the following
    <form runat=server id="form1">
    <asp:TextBox id="txt1" runat="server"/><BR>
    <asp:Button id="btn" runat=server Text="Create" OnClick="CreateControls"/><BR><asp:PlaceHolder id=ph runat="server" />
    <asp:Button id="btn2" runat=server Text="submit"/>
    </form><script language=C# runat=server>
    int TextNumber
    {
      get
      {
    object o = ViewState["TextNumber"];
    if (o == null)
    return 0; else
    return (int)ViewState["TextNumber"];

      }
      set 
      {
    ViewState["TextNumber"] = value;
      }
    }
    void AddTextBoxes(PlaceHolder ph, int n)
    {
      ph.Controls.Clear();
      for (int i=0; i < n; i++)
      {
    TextBox tb = new TextBox();
    tb.ID = "newtext" + i.ToString();
    ph.Controls.Add(tb);
      }
    }void Page_Load(Object o,EventArgs e)
    {
      if (TextNumber > 0)
      {
    AddTextBoxes(ph, TextNumber);
      }
     
    }void CreateControls(Object o,EventArgs e)
    {
      string s = txt1.Text.Trim();
      if (s != "")
      {
        int n=0;
        try
        {
    n = Convert.ToInt32(s);
        }
        catch (Exception ex)
        {
    n = 0;
        }    if (n > 0)
        {
    TextNumber = n;
    AddTextBoxes(ph, n);
        }
      }
    }
    </script>
      

  2.   

    jjstar恰当地指出了我的出错之处,也感谢saucer给我的代码,太感谢了!!
    可以加我Q吗?以后多多交流,我知道你们是不屑于和我这样的菜鸟为伍的,可是我
    真的很想可以接受你们的指教!!
    多谢了!
    QQ:81583225
    msn:[email protected]