<asp:Panel runat="server" ID="Panel1"></Panel><asp:Button runat="server" ID="add" Text="添加" OnClick="add_Click"/><asp:Button runat="server" ID="del" Text="删除" OnClick="del_Click"/>
页面上一个panel和2个按钮。
Page_Load()里面在if(!IsPostBack)给panel动态添加控件。可是点击add和del的时候,动态添加的控件就都消失了。
可是如果动态添加控件不放在if(!IsPostBack)里面的话,那动态添加的TextBox里面填的内容岂不是传不会服务器端了吗?
求大家帮帮忙啦!!!!

解决方案 »

  1.   

    额,没人帮忙吗??
    <asp:Panel runat="server" ID="Panel1"></Panel>
    <asp:Button runat="server" ID="add" Text="添加" OnClick="add_Click"/>
    <asp:Button runat="server" ID="del" Text="删除" OnClick="del_Click"/>
      

  2.   

    我试过用Placeholder控件,在不放在回传提交代码里,可以实现.
    你说的动态添加的TextBox里面填的内容还是可以在提交中获得.
    代码:<form id="form1" runat="server">
        <div>
            
            <asp:placeholder ID="Placeholder1" runat="server"></asp:placeholder>
            
        </div>
        <div>
            <asp:Button ID="button1" runat="server" Text="submit"  OnClick="button1_Click"       />
        </div>
        <asp:Label ID="label1" runat="server"></asp:Label>
        </form>后台:protected void Page_Load(object sender, EventArgs e)
        {            TextBox txtPlace = new TextBox();
                Placeholder1.Controls.Add(txtPlace);
            
        }    protected void button1_Click(object sender, EventArgs e)
        {
            if (Placeholder1.Controls.Count>0)
            {
                label1.Text = ((TextBox)Placeholder1.Controls[0]).Text;
            }
           
        }
      

  3.   

    在TEXTBOX写入东西后,提交后在LABEL里显示了已经写上的东西.
      

  4.   

    很奇怪的需求,页面在加载之前,有一个初始化阶段,这时会根据 aspx 页面中的声明创建控件,然后会加载视图状态,对控件属性进行赋值,附加事件处理函数什么的,然后才到load事件,你可以在 OnInit 函数里创建控件, 不过还是很烦人的, 用 MultiView, 或者 <% if (xxx) {%> 语句块都可以的
      

  5.   

    你这样子的确是能获取,但是怎样动态的添加多个TextBox呢?
      

  6.   

    我的意思是,就像投票选项一样,添加和删除TextBox来控制选项的数量,而且点击按钮后TextBox的值不会丢失,不知道能不能实现。我需要的是这样的功能,而如果只是做投票,有其他方法来做。
      

  7.   

    那就再ISPOSTBACK外初始化控件啊,
    然后点击确定的时候,将相应的值保存到SESSION里,然后重新赋值。
    具体判断如何赋值时,可能要根据动态生成时,将ID之类的制定一个规则