刘杰瑞 2022-05-31 21:23 采纳率: 90.9%
浏览 33
已结题

asp.net webform中事件调用JavaScript脚本

在一个button控件的点击事件中,要调用一个函数计算。由于时间较长,想加一个加载动画提示用户正在运行程序。
那么一个事件如果写成
void buttonclick(){
脚本显示加载动画;
函数计算;
脚本关闭加载动画;
}
这种写法能实现让用户看见加载动画,计算结束后,动画关闭,显示计算结果吗?

  • 写回答

2条回答 默认 最新

  • Yijing Sun 2022-06-01 10:28
    关注

    你好,
    你可以用asp.net Ajax progress bar 来显示进度。

    <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
             <script type="text/javascript">
                 // Get the instance of PageRequestManager.
                 var prm = Sys.WebForms.PageRequestManager.getInstance();
                 // Add initializeRequest and endRequest
                 prm.add_initializeRequest(prm_InitializeRequest);
                 prm.add_endRequest(prm_EndRequest);
                
                 // Called when async postback begins
                 function prm_InitializeRequest(sender, args) {
                     // get the divImage and set it to visible
                     var panelProg = $get('divImage');                
                     panelProg.style.display = '';
                     // reset label text
                     var lbl = $get('<%= this.lblText.ClientID %>');
                     lbl.innerHTML = '';
     
                     // Disable button that caused a postback
                     $get(args._postBackElement.id).disabled = true;
                 }
     
                 // Called when async postback ends
                 function prm_EndRequest(sender, args) {
                     // get the divImage and hide it again
                     var panelProg = $get('divImage');                
                     panelProg.style.display = 'none';
     
                     // Enable button that caused a postback
                     $get(sender._postBackSettings.sourceElement.id).disabled = false;
                 }
             </script>
     
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Label ID="lblText" runat="server" Text=""></asp:Label>
                    <div id="divImage" style="display:none">
                         <asp:Image ID="img1" runat="server" ImageUrl="~/images/progress.gif" />
                         Processing...
                    </div>                
                    <br />
                    <asp:Button ID="btnInvoke" runat="server" Text="Click"
                        onclick="btnInvoke_Click" />
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Null_Reference 2022-06-01 09:18
    关注

    我记得以前有个什么ScriptManager 的东东 你搜搜
    现在都用js直接就可以弄了。找个插件就能实现了 比如layer 什么的

    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月1日
  • 已采纳回答 6月23日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 Python词频统计,运行出的Excel没有内容
  • ¥15 求推荐一个好用的录屏软件
  • ¥15 kali显示no x11 display variable was set;
  • ¥15 如何实现这个Python开发问题
  • ¥15 Erasure Code纠删码表
  • ¥15 用vite创建的vue3项目,404重定向不起作用??
  • ¥15 关于#c语言#的问题:一个球从80米高度自由落下,每次落地后反弹的高度为原高度的一半计算6次小球反弹的高度.(反弹结果取整,使用走走for循环结构)
  • ¥15 SurfaceControl的screenshot问题
  • ¥15 基于51单片机的oled菜单代码,要C语言,模块化编程!
  • ¥15 JAVAswing,设计一个扑克牌什么的