页面上有个按钮,单击触发事件,如何让按钮变成灰色的.等程序操作完成后让它正常.
private void Button2_Click(object sender, System.EventArgs e)
{
Button2.Enabled=false;//Button2.Visible=false;也不起作用
//中间是操作数据库代码,省略.
Button2.Enabled=true;;//Button2.Visible=true;也不起作用 }
不知道该如何写?请帮忙!谢谢我现在点上去,按钮不是安的!

解决方案 »

  1.   

    <%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm3" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm3</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

    <script language=javascript >
    function abc()
    {
    var mybutton=document.getElementById("Button1");
    mybutton.disabled=true;    //变灰
    __doPostBack("Button1","");  //执行服务器端button1的click事件
    }

    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server"></asp:TextBox>
    <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 40px" runat="server"
    Text="Button"></asp:Button>
    </form>
    </body>
    </HTML>在webform3.aspx.cs中主要两个方法中的代码如下 :
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    this.GetPostBackEventReference(Button1);  //这句很关键,有这句才能让客户端执行服务器端事件。
    Button1.Attributes.Add("onclick","abc();");  }
    //用作测试用的
    private void Button1_Click(object sender, System.EventArgs e)
    {
    this.TextBox1.Text="1";
    int k=0;
    for(int i=0;i<9999;i++)
    for(int j=0 ;j<999;j++)
    k=9;
    this.TextBox1.Text="1";
    }测试结果:由于两个循环运行时间比较长,在运行时,button按钮一直是灰的,只有运行完才会恢复,如果运行完后还想变为灰的,那在最后添加一个this.Button1.Enabled=false;就行了。这样就达到了按钮先变灰然后执行服务器端事件。
      

  2.   

    你这样写Button2点击事件完成后Button2.Enabled=true,肯定又是亮的了