我网页上有一个按钮,当按下这个按钮后先执行一个javascript,就是把整个页面灰掉,显示“等待”(这个javascript已经写好了)。在出现等待的这个过程中,还要运行一个后台的代码进行数据库的一些操作。但是现在的问题是,我在asp:button 的onclick事件里面加上onclick="abc();", 然后后台注册这个button.click += 事件 处理数据库的操作。以上的操作,不起作用。请问,正确的方法应该怎么弄?谢谢

解决方案 »

  1.   

    ab()为js的函数
    btn1_Click()为服务器端函数
    <asp:Button OnClick ="btn1_Click()" OnClientClick ="ab()" />
      

  2.   

    vs2003: btn.Attribute.Add("onclick","alert('a')");
    vs2005: OnClientClick
      

  3.   

    “后台的代码进行数据库的一些操作”用AJAX做(纯手写、AjaxPro.2.dll或AJAX包任君选择)。
      

  4.   

    ab()为js的函数 
    <input type="Button" value="确定" OnClientClick ="ab()"/>
    “后台的代码进行数据库的一些操作”用AJAX做(纯手写、AjaxPro.2.dll或AJAX包任君选择)。在ab()这个客户端事件里既可以执行js方法显示进度,又可以利用AJAX技术对数据库操作。
      

  5.   

    最好用AJAX,还可以让你的CS类实现ICALLBACKEVENTHANDLER接口,在ASPX代码里<%= ClientScript.GetCallBackEventRefence(this,"arg","回调函数","context") %>来异步调用
      

  6.   

    有2点我要说一下1、VS2003
    2、我的button是在repeater里面的,但是不知道什么原因,我在动态绑定button的时候去注册它的click事件,总是不可以,因此我就在页面代码上面直接写了 onclick="ClearTriage_Click"(这里的ClearTriage_Click是后台代码的函数名)
      

  7.   

    不过注意要在初始化页面时绑定新特性
    比如protected void Page_Load(object sender, EventArgs e)
            {
           
                if (!IsPostBack)
                {
                     btn.Attribute.Add("onclick","alert('a')");             }
            }
     
      

  8.   

    到AJAX里利用WEBSERVER  一样可以进行数据库的操作的
      

  9.   


    问题就是在于这个repeater的内容是动态生成的,一直在变,因此不可能在if (!IsPostBack){}申明。所以只能在页面上加onclick来直接调用。