前台代码 
 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    
        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Clear" />
        <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </ContentTemplate>
            <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Button2" />
            </Triggers>
        </asp:UpdatePanel>[/后台代码 :
  protected void Button2_Click(object sender, EventArgs e)
    {
                TextBox1.Text = "";
    }
我想把textbox1 清除了 怎么就不行啊!

解决方案 »

  1.   

    textbox1 不会清除掉,
      

  2.   

      protected void Button2_Click(object sender, EventArgs e)
        {
                    TextBox1.Visible=false;
        }怎么都喜欢这样用ajax
      

  3.   

    见识浅,为什么不用JAVASCRIPT清空?
      

  4.   

    晕,你把textbox1放在了UpdatePanel外面能清除才有鬼啦。你要是真要这样布局的话就用JS清除吧
      

  5.   

    我是想清除文本框 不是 TextBox1.Visible=false;  用js 怎么清除!
    哪位高手能不能解释下 这样为什么不行,谢谢
      

  6.   

    这样当然不行了,你把UpdatePanel的触发器设置为Button2的按钮事件,当事件执行后,UpdatePanel会局部更新,但是UpdatePanel外的并没有更新,所以就是这个结果了.
    你可以把<asp:AsyncPostBackTrigger ControlID="Button2" />
    改一样,改成回传就行了.
      

  7.   

    晕死,AJAX就是为了实现局部刷新的效果,你的TextBox1是放在UpdatePanel外面,当然不会刷新。
    你要么把TextBox1放到UpdatePanel里面去。
    要么写成JS方法
    <script id="igClientScript" type="text/javascript">
    function Clear()
    {
       var TextBox1=document.getElementByID('<%=TextBox1.ClientID%>');
       TextBox1.value="";
    }
    </script> 
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" OnClientClick="Clear()" Text="Clear" />
      

  8.   

    protected   void   Button2_Click(object   sender,   EventArgs   e) 

      string sScript = "document.getElementById('" + TextBox1.ClientID + "').value = ''";
      ScriptManager.RegisterClientScriptBlock(this.UpdatePanel2, UpdatePanel2.GetType   (), "ScriptManagerRun", sScript, true);
    }
    这样就可以了