更新数据的时候如何使页面中的按钮不能用等更新完数据按钮恢复使用

解决方案 »

  1.   

    用try...catch...finally块
    try块里控制按钮visible=false
    在finally里面写visible=true
    -------
    一点思路,希望能帮到你.不过你的帖子太短太抽象了,估计会被群众批评..
      

  2.   

    如果是点按钮更新的话..那么页面肯定刷新.这样你还用管按钮的状态吗??如果是用了ajax不刷新的话..可以用js控制一下你的按钮.似乎也不难.
      

  3.   

    用AJAX比较好,验证必要项是否输入完整,如完整按钮為可用。
      

  4.   

    我们不让用AJAX我用try...catch...finally试试
      

  5.   

     try
                {
                    this.btn_Save.Visible= false;
                    for (int i = startYear; i <= endYear; i++)
                    {
                        if (!IsContainsYear(i))
                        {
                            aDimensionTimeDao.addDimensionTimeYear(i);
                            //startYear = startYear + 1;
                            addYearList.Add(i.ToString());
                        }
                        else
                        {
                            existYearList.Add(i.ToString());
                        }
                    }
                }
                catch (OracleException sqlerr)
                {
                    throw new DataAccessException(sqlerr.Message);
                }
                finally
                {
                    this.btn_Save.Visible= true;
                }也不起作用  
      

  6.   

    设置个sessionif(session["time"]==null)
      {
       session["time"]="1";
       执行...
      }
    page_load事件中加上
    {
       if(!ispostback)
    {
       session["time"]=null;
     }
    }
      

  7.   

    客户端控制的话,禁用....
    <input disabled />
    服务端控制,不执行代码就可以了.
      

  8.   

    已经很详细了...你随便找个按钮.加上disabled,他就灰掉了....
    IE6.0以前.尤其是IE5.5的时候,经常会出现点一个按钮提交两次的问题,都是这么处理.
      

  9.   

    <asp:Button ID="btn_Save" runat="server" OnClick="btn_Save_Click" Text="创建" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false" CssClass="button" />我加上
    OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false"
    这句时,就灰掉了可是添加完数据后按钮也就不见了
    怎么修改一下在添加完数据以后按钮可见?
      

  10.   

    在执行之前将按钮设置Enable=false;
    执行最后Enable=true不过web的按钮的状态好像不太好控制吧。而且必然会postback。如果用ajax倒是可以用js来控制,因为页面不会刷新
      

  11.   

    搞定了加上这句
    OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false" 最后加上
    this.btn_Save.Visible = true;大家还有什么方法可以提出来争取找到一个更好的方法
      

  12.   

    SUBMIT在前面.DISABLED在后面.
    至于按钮不见了,是你其它代码影响了吧.我看见前面有人给你帖了visiable=false;之类的,你COPY来用了没?清掉没有?
      

  13.   


    是因为我一开始用的没注释掉
    前后没什么关系吧还有一点
    为什么我用在另外一个页面上就不起作用了
    是因为我另外一个页面用的JS用的还是因为什么?
    验证完JS就不往下面执行了
      

  14.   

    <script language ="javascript" type="text/javascript">
       function isContinueLoad(){
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value;
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value;
        var hasStatedYears = "<%= hasStatedYears%>";
        var years="";
        for(var i=startYear;i<=endYear;i++){
            if(hasStatedYears.indexOf(i) != -1){
                years += i + " ";
            }
        }
        
        if(years != ""){
            return confirm(years + " 已统计,要重新统计吗?");
        }else{
            return true;
        }
    }
    </script>不起作用的页面加的JS代码
    if (!IsPostBack)中注册
    this.btn_Select.Attributes.Add("onclick", "return isContinueLoad()");加上以后则第一次可以验证,以后就不能验证了而且所有的均不能执行btn_Select_Click事件
      

  15.   

    一点击提交按钮的事件时,就把所有按钮 this.按钮ID.Enabled="false"
      

  16.   

    实在不行,就把CSDN的某个老大求出来问问,这里的<提交回复>点击后不就变灰了吗?
      

  17.   


    在一个页面有用,其它页面肯定也有用了..
    如果无效.就看看IE右下有没有感叹号.JS报错没.
      

  18.   

    没有报错也可以执行 但是这段JS代码就不能执行进行验证了<script language ="javascript" type="text/javascript"> 
       function isContinueLoad(){ 
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value; 
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value; 
        var hasStatedYears = " <%= hasStatedYears%>"; 
        var years=""; 
        for(var i=startYear;i <=endYear;i++){ 
            if(hasStatedYears.indexOf(i) != -1){ 
                years += i + " "; 
            } 
        } 
         
        if(years != ""){ 
            return confirm(years + " 已统计,要重新统计吗?"); 
        }else{ 
            return true; 
        } 

    </script> 
      

  19.   


    这样不行的
    在数据添加的过程中  this.按钮ID.Enabled="false 显示不出来
      

  20.   

    isContinueLoad
    是这个函数没有执行了吧
    你看看原来这个函数是在什么时候调用的.现在为什么没调用.
    我估计是你原来调用的方法是写在设计期的...而后面运行期的代码没有调用他.
      

  21.   

    this.btn_Select.Attributes.Add("onclick", "return isContinueLoad()");
    放在if (!IsPostBack)中
      

  22.   

    this.btn_select.attributes.add("onclick","XXXX") 
    效果等同与onclientclick,你的onclientclick是设计期代码,attributes.add是运行期代码.OnClientClick="this.disabled=true;this.form.submit();" 
    不如把onclientclick里面的两句话都写到你的isContinueLoad()里去.
    把OnClientClick挪到本世纪if(!Page.IsPostBack)外面去.
      

  23.   

    this.btn_Select.Attributes["onclick"] = this.GetPostBackEventReference(this.btn_Select) + ";this.disabled=true;";放在if (!IsPostBack)外面和里面isContinueLoad()都不起作用
    把OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false" 放到 isContinueLoad()中?
      

  24.   

    OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false"
    如果不要这句话则
    this.btn_Select.Attributes["onclick"] = this.GetPostBackEventReference(this.btn_Select) + ";this.disabled=true;"; 放在if (!IsPostBack)外面和里面isContinueLoad()都可以就是isContinueLoad()这个不起作用
      

  25.   

    $("button").removeClass().css({color:"#ccc"});//样式自己调
    $("body").prepend("<div id='replace' style='background-color:#eee; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); height:100%; width:100%; position:absolute; z-index:2;' ></div>");
      
      //获取判断数据传送成功否
      $("#replace").remove();最简单方法
      

  26.   


    去网上找一个Div层的弹出
    点击按钮时,用这个Div层盖住页面
    并显示“程序处理中,请稍候...”这样会不会更友好呢。
      

  27.   


    我现在就在考虑找个Div层弹出的例子还没找到合适的,,,继续寻找中
      

  28.   

    $("button").removeClass().css({color:"#ccc"});//样式自己调
    $("body").prepend(" <div id='replace' style='background-color:#eee; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); height:100%; width:100%; position:absolute; z-index:2;' > </div>");
      
      //获取判断数据传送成功否
      $("#replace").remove();最简单方法我这个不是??????
      

  29.   

    很详细啦不过要在开头加入
    <javascript src="jquery.js"></javascript>
    $(document).ready(function(){
       //包含上面的内容
    });已经说的很详细啦 :))))
      

  30.   

    也就是说在aspx页面中加入
    <javascript src="jquery.js"> </javascript> 
    $(document).ready(function(){ 
       $("button").removeClass().css({color:"#ccc"});//样式自己调 
    $("body").prepend("   <div id='replace' style='background-color:#eee; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); height:100%; width:100%; position:absolute; z-index:2;' >   </div>"); 
    }); $("#replace").remove();   
    但是这句是在哪里使用的?
      

  31.   

    下面是我用的一个简单示例,你可以参考一下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <style type="text/css">
    BODY
    {
        padding: 0;
        font-size: 12px;
        color : #000DD4;
        background: #ffffff;
        font-family: "宋体" , "Helvetica" , "sans-serif";
        margin: 2px;
        height:100%;
    }
    </style>
        <script language="Javascript" type="text/javascript">
            dialogboxWrite();  // 写入对话框div
            function test1(){
                dialogboxAlpha();
            }
            function test2(){
                dialogboxAlpha("<input type='button' onclick='dialogboxAlpha()' value='关闭'>");
            }    function dialogboxWrite() {
            var dialogbox = '                                           \
        <style type="text/css">                                         \
        #dialogShowBox {                                                \
            text-align: center;                                         \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 99;                                                \
            width: 100%;                                                \
            height: 100%;                                               \
            }                                                           \
        #dialogLeft {                                                   \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 1002;                                              \
            width: 100%;                                                \
            height: 100%;                                               \
            }                                                           \
        #dialogAlphaBox {                                               \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 1000;                                              \
            width: 100%;                                                \
            height: 100%;                                               \
            background: #000;                                           \
            filter:alpha(opacity=60);   /* IE */                        \
            opacity: 0.6;   /* 支持CSS3的浏览器 */                      \
            -moz-opacity: 0.6; /* Moz + FF */                           \
            }                                                           \
        #dialogContent {                                                \
            color: #416f02;                                             \
            margin: 0 auto;                                             \
            margin-top: 150px;                                          \
            width: 200px;                                               \
            height: 50px;                                               \
            padding-left: 0px;                                          \
            border: 2px solid #ff7e02;                                  \
            background-color: #fff;                                     \
            }                                                           \
        </style>                                                        \
        <div id="dialogShowBox" style="display:none;">                  \
            <div id="dialogLeft">                                       \
                <div id="dialogContent"></div>                          \
            </div>                                                      \
            <div id="dialogAlphaBox"></div>                             \
        </div>';
        document.write(dialogbox);
        }    function dialogboxAlpha(content, w, h) {
            var showBox = document.getElementById("dialogShowBox");
            var bgalpaha = document.getElementById("dialogAlphaBox");
            var objContent = document.getElementById("dialogContent");
            if(showBox && bgalpaha && objContent){
                if(showBox.style.display == "none") {
                    showBox.style.display = "block";
                    showBox.style.height = document.documentElement.scrollHeight;
                    bgalpaha.style.height= document.documentElement.scrollHeight+"px";
                    bgalpaha.style.width = document.documentElement.scrollWidth + "px";
                    
                    if(!content){
                        var processing = "   <marquee style='border:1px solid #000000;width:150px;;background-color:#FFFFEC' direction='right' ";
                        processing += "   scrollamount='5' scrolldelay='10'>";
                        processing += "  <table cellspacing='1' cellpadding='0'>";
                        processing += "    <tr style='height:8px;'>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    </tr>";
                        processing += "  </table>";
                        processing += "</marquee>";
                        
                        content = '<table border="0" style="width:100%;height:100%">                            \
                            <tr><td style="text-align:center;font: 12px Verdana,Tahoma,sans-serif,Arial,宋体">  \
                                程序处理中,请稍候...</td></tr>                                                 \
                            <tr><td style="text-align:center;">' + processing + '</td></tr></table>';
                    }
                    objContent.innerHTML = content;
                    if(w) objContent.style.width = w + "px";
                    if(h) objContent.style.height = h + "px";
                    
                    // 显示全部的Select
                    var list = document.getElementsByTagName("SELECT");
                    for(var i=0;i<list.length;i++)
                        list[i].style.display="none";
                } else {
                    showBox.style.display = "none";
                    
                    // 显示全部的Select
                    var list = document.getElementsByTagName("SELECT");
                    for(var i=0;i<list.length;i++)
                        list[i].style.display="";
                }
            }
        }
        
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="button" value="test" onclick="test1();" />
            <input type="button" value="test" onclick="test2();" />
        </div>
        </form>
    </body>
    </html>
      

  32.   


    <asp:Button ID="btn_Add" runat="server" Text="统计" OnClick="btn_Add_Click" />
    怎么设置能执行Click事件
      

  33.   

    <asp:Button ID="btn_Add" runat="server" Text="统计" OnClick="btn_Add_Click" 
    onclientclick="test1()" /> 
      

  34.   

    dialogboxAlpha()中的
    // 显示全部的Select
    是做什么用的?
      

  35.   

    div碰到select时,会出现无法遮盖select的问题,所以那个例子中,弹出div时,就把页面所有select隐藏
    关闭div时,再显示select那个示例除了滚动栏,其它都支持IE和FF
      

  36.   

    我aspx页面中
    还有一段JSfunction isContinueLoad(){
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value;
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value;
        var hasStatedYears = "<%= hasStatedYears%>";
        var years="";
        for(var i=startYear;i<=endYear;i++){
            if(hasStatedYears.indexOf(i) != -1){
                years += i + " ";
            }
        }
        if(years != ""){
            return( confirm(years + " 已统计,要重新统计吗?"))
        }
        else{
            return true;
        }
    }这样当我运行时,这个判断的和弹出的DIV一起出现判断的就不起作用了不知道怎么解决
      

  37.   

    把弹出div的代码放在你的return true;前面不就ok了
      

  38.   

    好了function isContinueLoad(){
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value;
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value;
        var hasStatedYears = "<%= hasStatedYears%>";
        var years="";
        for(var i=startYear;i<=endYear;i++){
            if(hasStatedYears.indexOf(i) != -1){
                years += i + " ";
            }
        }
    //     if(years != ""){
    //         return( confirm(years + " 已统计,要重新统计吗?"))
    //     }
    //     else{
    //         return true;
    //     }
        
        if(years != ""){
            if( confirm(years + " 已统计,要重新统计吗?")){
    //             document.getElementById("ctl00$ContentPlaceHolder1$btn_Select").style.display="none";            test1();
                return true;
            }else{
            return false;}
        }
        else{
            test1();
            return true;
        }
    }   
      

  39.   

    用Ajax处理,当数据还没返回时,屏蔽掉按钮
      

  40.   

    div碰到select时,会出现无法遮盖select的问题,所以那个例子中,弹出div时,就把页面所有select隐藏
    关闭div时,再显示select去除select  不可取吧?
      

  41.   

    总结一下:
    一:
    如果aspx页面中没有JS文件,则
    不需要弹出DIV  只要在执行过程中把按钮设为不可用即可,例如
    <asp:Button ID="btn_Save" runat="server" OnClick="btn_Save_Click" Text="创建" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false"/>     二:
    如果aspx页面中含有JS文件,则
    可通过弹出DIV阻止使用,例如:aspx页面:
      <script language="Javascript" type="text/javascript">
            dialogboxWrite();  // 写入对话框div
            function test1(){
                dialogboxAlpha();
            }
            function test2(){
                dialogboxAlpha("<input type='button' onclick='dialogboxAlpha()' value='关闭'>");
            }    function dialogboxWrite() {
            var dialogbox = '                                           \
        <style type="text/css">                                         \
        #dialogShowBox {                                                \
            text-align: center;                                         \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 99;                                                \
            width: 100%;                                                \
            height: 100%;                                               \
            }                                                           \
        #dialogLeft {                                                   \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 1002;                                              \
            width: 100%;                                                \
            height: 100%;                                               \
            }                                                           \
        #dialogAlphaBox {                                               \
            position: absolute;                                         \
            left: 0;                                                    \
            top: 0;                                                     \
            z-index: 1000;                                              \
            width: 100%;                                                \
            height: 100%;                                               \
            background: #000;                                           \
            filter:alpha(opacity=60);   /* IE */                        \
            opacity: 0.6;   /* 支持CSS3的浏览器 */                      \
            -moz-opacity: 0.6; /* Moz + FF */                           \
            }                                                           \
        #dialogContent {                                                \
            color: #416f02;                                             \
            margin: 0 auto;                                             \
            margin-top: 150px;                                          \
            width: 200px;                                               \
            height: 50px;                                               \
            padding-left: 0px;                                          \
            border: 2px solid #ff7e02;                                  \
            background-color: #fff;                                     \
            }                                                           \
        </style>                                                        \
        <div id="dialogShowBox" style="display:none;">                  \
            <div id="dialogLeft">                                       \
                <div id="dialogContent"></div>                          \
            </div>                                                      \
            <div id="dialogAlphaBox"></div>                             \
        </div>';
        document.write(dialogbox);
        }    function dialogboxAlpha(content, w, h) {
            var showBox = document.getElementById("dialogShowBox");
            var bgalpaha = document.getElementById("dialogAlphaBox");
            var objContent = document.getElementById("dialogContent");
            if(showBox && bgalpaha && objContent){
                if(showBox.style.display == "none") {
                    showBox.style.display = "block";
                    showBox.style.height = document.documentElement.scrollHeight;
                    bgalpaha.style.height= document.documentElement.scrollHeight+"px";
                    bgalpaha.style.width = document.documentElement.scrollWidth + "px";
                    
                    if(!content){
                        var processing = "   <marquee style='border:1px solid #000000;width:150px;;background-color:#FFFFEC' direction='right' ";
                        processing += "   scrollamount='5' scrolldelay='10'>";
                        processing += "  <table cellspacing='1' cellpadding='0'>";
                        processing += "    <tr style='height:8px;'>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    <td style='width:8px;background-color:#3399ff;'></td>";
                        processing += "    <td></td>";
                        processing += "    </tr>";
                        processing += "  </table>";
                        processing += "</marquee>";
                        
                        content = '<table border="0" style="width:100%;height:100%">                            \
                            <tr><td style="text-align:center;font: 12px Verdana,Tahoma,sans-serif,Arial,宋体">  \
                                程序处理中,请稍候...</td></tr>                                                 \
                            <tr><td style="text-align:center;">' + processing + '</td></tr></table>';
                    }
                    objContent.innerHTML = content;
                    if(w) objContent.style.width = w + "px";
                    if(h) objContent.style.height = h + "px";
                    
                    // 显示全部的Select
                    var list = document.getElementsByTagName("SELECT");
                    for(var i=0;i<list.length;i++)
                        list[i].style.display="none";
                } else {
                    showBox.style.display = "none";
                    
                    // 显示全部的Select
                    var list = document.getElementsByTagName("SELECT");
                    for(var i=0;i<list.length;i++)
                        list[i].style.display="";
                }
            }
        }
        
    function isContinueLoad(){ 
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value; 
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value; 
        var hasStatedYears = " <%= hasStatedYears%>"; 
        var years=""; 
        for(var i=startYear;i <=endYear;i++){ 
            if(hasStatedYears.indexOf(i) != -1){ 
                years += i + " "; 
            } 
        } 
         
        if(years != ""){ 
            if( confirm(years + " 已统计,要重新统计吗?")){ 
                test1(); 
                return true; 
            }else{ 
            return false;} 
        } 
        else{ 
            test1(); 
            return true; 
        } 
    }      </script><asp:Button ID="btn_Select" runat="server" OnClick="btn_Select_Click" Text="统计"/> 
    在CS文件中的if (!IsPostBack)中注册
    this.btn_Select.Attributes.Add("onclick", "return isContinueLoad();");
      

  42.   

    还有一种不太友好的方法在数据添加的过程中,把按钮设为不可见
    数据添加完毕,显示出按钮,例如function isContinueLoad(){  
        var startYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_BeginYear").value;  
        var endYear = document.getElementById("ctl00$ContentPlaceHolder1$txt_EndYear").value;  
        var hasStatedYears = "  <%= hasStatedYears%>";  
        var years="";  
        for(var i=startYear;i  <=endYear;i++){  
            if(hasStatedYears.indexOf(i) != -1){  
                years += i + " ";  
            }  
        }  
          
        if(years != ""){  
            if( confirm(years + " 已统计,要重新统计吗?")){  
                document.getElementById("ctl00$ContentPlaceHolder1$btn_Select").style.display="none";
                return true;  
            }else{  
            return false;}  
        }  
        else{  
            document.getElementById("ctl00$ContentPlaceHolder1$btn_Select").style.display="none";
            return true;  
        }  
    }   
    关于:ctl00$ContentPlaceHolder1$btn_Select
    因为是服务器控件,则在实际执行过程中,你可以通过查看源文件得到此按钮的ID实际上为什么
      

  43.   

    这种就不要了 不友好的东西  就是bug