Показать панель загрузки по нажатию кнопки Asp - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть кнопка asp, на которой я проверяю некоторые данные, а затем запускаю свою функцию на стороне сервера, она работает нормально, это выглядит так

<asp:Button CssClass="btnRequestFile" ID="btnSave" runat="server" Text="Request"
                            OnClientClick="if(clientValidate() == false) return false;" OnClick="btnSave_Click" />

Итак, на моей стороне клиента я хочу показать панель загрузки, но панель загрузки не появляется, пока не прозвучит какое-то предупреждение, вот мой код:

function clientValidate() {
    // $("#IDData").html('');
    $.loading({ align: 'center', delay: 0, img: '../common/Content/images/shared/sq_loader_3.gif', onAjax: false, pulse: false });
    $("#divLoadingImg").show();
    alert("dfhdfh");
    var isValid = false;
    var objectData = null;

    var liTags = $('#' + secondContainer).find('li');
    if (liTags.length == 0) {
        alert('Please select at least one question !');
    }
    else {
        if (SaveConfiguration()) {
            //alert('error occurred');
        }
        else {
            //alert('error free');

            isValid = true;
        }
    }

    $("#divLoadingImg").hide();
    $.loading(false);
    return isValid;
}

Я использую jquery.loading.min.js, чтобы показать панель загрузки, она не работает, также я попытался поместить div в разметку и просто показать, скрыть его как загрузку, но безрезультатно, как это можно сделать.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2017
 <head>
        <script type="text/javascript">

        document.onload=hide_loading_div();

        function show_loading_div(){
          var my_loading_div = document.getElementById('the_loading_div');
          my_loading_div.style.visibility = 'visible';
        }

        function hide_loading_div(){
          var my_loading_div = document.getElementById('the_loading_div');
          my_loading_div.style.visibility = 'hidden';
        }
    </script>

    <style type="text/css">

        .class_of_the_loading_div{
            position:fixed;
            width:100%;
            height:100%;
            top:0;
            left:0;
            background-color: rgba(0,0,0,0.75);
            text-align:center;           
        }
    </style>


</head>

<body onload="hide_loading_div()">

   Some elements, grids, buttons etc..

   <asp:Button ID="btn_something" runat="server" Text="A Button" OnClientClick="show_loading_div()" OnClick="btn_something_Click" />

  <div class="class_of_the_loading_div">
    Write here LOADING or put a loading gif...
  </div>
</body>

ПОЯСНЕНИЯ:

  • Панель загрузки видна в начале (во время инициализации страницы)
  • После первой инициализации, код document.onload=hide_loading_div(); скрывает панель.
  • Когда вы нажимаете кнопку Asp, сначала запускается код JS и снова отображается панель. Затем код C # запускается и некоторое время работает в фоновом режиме.
  • После завершения обратной передачи html body скрывает панель, потому что вы пишете <body onload="hide_loading_div()">
  • Ты улыбаешься, потому что ты счастлив.

Примечание. Если вы хотите заблокировать только часть страницы с панелью, подобной загрузке div, контейнер div, который будет "затемнен", должен иметь `position :lative; ' Атрибут и блокатор div должны иметь атрибут 'position: absolute' (не фиксированный).

0 голосов
/ 19 декабря 2011

поместите погружение в "sonu" и дайте ему какое-то удостоверение личности

и в jquery напиши;

<script type="text/javascript">
    $(document).ready(function () {
$("#div1").hide();
function clientValidate() {

$("#div1").show("slow");
});
});
</script>

Поместите свой gif-код в погружение

...