1

我试图在按钮单击时显示加载 div,但目前无法正常工作。

Javascript:

<script type="text/javascript">
        $(document).ready(function (e) {      
            $('#BtnSend').click(function () {
                $('#<%= loading.ClientID %>').toggle("slow");
            });
        });
    </script>

分区:

<div id="loading" class="Loading" runat="server" visible="false">
  <div class="loadingImg">
    <img src="../Images/loading.gif" alt="loading" />
    </div>
  </div>

按钮:

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
            onclick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" />

div 设置为 runat server,这样我也可以通过代码更改其可见性。

4

3 回答 3

3

使用onClientClickasp 按钮。然后制作你调用的 jquery 函数BtnSend_Click

如果您想通过客户端执行此操作:

jQuery

function BtnSend_Click () {
     $('#<%= loading.ClientID %>').toggle("slow");
}

ASP 按钮

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
            onClientClick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" />

如果您想通过服务器执行此操作:

C#

protected void BtnSend_Click(object sender, EventArgs e){
     loading.Visibility = 'visible' //not sure on syntax to show it in code behind off the top my head
}

ASP 按钮

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
            onClick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" />
于 2013-07-22T20:31:10.277 回答
0

我尝试添加一个阻止默认值,因为下面描述的代码会在加载 div 以其他方式显示之前回发。

<script type="text/javascript">
    $(document).ready(function (e) {      
        $('#<%= BtnSend.ClientID %>').click(function (e) {
            e.preventDefault();
            $('#<%= loading.ClientID %>').toggle("slow");
        });
    });
</script>

我注意到的另一件事是您已设置Visible="false"

<div id="loading" class="Loading" runat="server" visible="false">

这意味着 div 不存在,因为它不是从服务器端输出的。页面加载时查看视图源,它不会存在和隐藏,它只是不存在。删除visible="false"并使用 CSS 来隐藏它。

于 2013-07-22T20:30:54.577 回答
0

ASP.Net AJAX 库有一个UpdateProgress控件,听起来很适合您的需要。

于 2013-07-22T20:32:11.797 回答