<html>
<body>
   <form runat="server">
   <asp:Label id="lbl" text="111" Runat="server" /><br>
   <asp:Button text="too" id="btn1" RunAt="server" />
   </form>
</body>
</html><script language="C#" runat="server">
 void Page_Load(object sender, EventArgs e)
 {
  btn1.Attributes.Add("onclick","this.lbl.Visible=false");
 }</script>
执行这段代码之后并没有将lbl的状态改变,请问是为什么?

解决方案 »

  1.   

    btn1.Attributes.Add添加的代码是在客户端运行的,而this.lbl.Visible=false是在服务器端运行的。
      

  2.   

    那该如何才可以达到隐藏lbl.text的效果呢?
      

  3.   

    btn1.Attributes.Add("onclick","this.lbl.Visible=false");
    ------------
    btn1.Attributes.Add("onclick","ctrlHid(this)");
    一般是js函数,这样写是不行的
    functiong ctrlHid(obj)
    {
     obj.style.visible =false;
    }
      

  4.   

    那该如何才可以达到隐藏lbl.text的效果呢?
    -------------------------------------------------------------------------------------
    void Page_Load(object sender, EventArgs e)
     {
      this.lbl.Visible=false;
     }
      

  5.   

    如果想通过attributes.add的方法呢
      

  6.   

    <script language="C#" runat="server">
     void Page_Load(object sender, EventArgs e)
     {
      btn1.Attributes.Add("onclick","this.style.display='none'");
     }</script>
      

  7.   

    如果想通过attributes.add的方法呢
    -------------------------------------------------------------------------------------
    这么点功能,搞得那么复杂干吗?btn1.Attributes.Add添加的代码是在客户端运行的,而this.lbl.Visible=false是在服务器端运行的。楼主首先要弄清楚什么是B/S.
      

  8.   

    因为你的Button会PostBack,这样回发后还是会显示,所以要加return false
    <script language="C#" runat="server">
     void Page_Load(object sender, EventArgs e)
     {
      btn1.Attributes.Add("onclick","this.style.display='none';return false");
     }</script>