需求说明
1.在B/S中使用Excel模版时需要耗费的时间很长,所以想要先把需要绑定的数据显示出来,然后通过Thread在后台执行生成Excel的操作
2.生成过程中,前台页的‘另存Excel’按钮置灰
3.等Thread执行完成之后再把‘另存Excel’按钮的Enabled状态修改为可用问题出来了:
在Thread执行的方法中,如何获取并修改‘另存Excel’按钮的属性有遇到类似问题的吗,求解答
或者别的解决办法也行,多谢

解决方案 »

  1.   


    当你将某个程序使用线程执行时,那么处理客户端请求的程序立刻就继续执行了,不等它完成就执行到Render,即输出html并准备结束页面生命周期了。根据你的问题所表达的设计层面,我只是告诉你为什么那样设计会失败。
      

  2.   

    B/S的UI层和后台本来就不是一个进程啊 不明白楼主的意思你要改变一个按钮 前台的js就可以实现了
    //另存为
    function saveasExcel()
    {
       //先把需要绑定的数据显示出来
       $.ajax(
    {url:your_request_url,
     data:params_to_pass,
     suceess:function(ret){
        //根据后台传过来的结果显示数据到你的容器
         //todo
        //改变button
        $(“#btn_saveAsExcel”).attr("enabled",false);}
    );
       //生成Excel的操作
    $.ajax(
    {url:your_request_url2,
     data:params_to_pass2,
     suceess:function(ret){
        //根据后台传过来的结果显示数据到你的容器
         //导出的excel的操作
       //改变button
        $(“#btn_saveAsExcel”).attr("enabled",true);}
    );
    }