想要将光标显示为忙碌更长时间

时间:2014-09-18 11:15:40

标签: kendo-ui cursor

我有一个包含9个下拉菜单和一个kendo网格的网页。我正在为所有下拉菜单调用ajax。当我加载页面时,下载内容中的值变化缓慢,带有一些默认值。下载加载时间我想显示光标让kendo网格等待。等待即将到来但很快消失。我想显示光标等待所有下拉加载,以便用户无法制作任何下拉中的任何选择。

这是我的JavaScript代码:

 function ShowLoadingCursor() {
        $("body").css("cursor", "wait");
        overlay.show();
        overlay.appendTo(document.body);
        $('.popup').show();
    }
    function HideLoadingCursor() {
        $('.popup').hide();
        overlay.appendTo(document.body).remove();
        $("body").css("cursor", "auto");
    }

    $(document).ready(function () {
        ShowLoadingCursor();
    });

    $(window).load(function () {
        HideLoadingCursor();
    });

我正在使用MVC方法。我有无数的网页。不可能在所有页面中实现代码。所以我在Layout.cshtml页面中编写上面的代码。我不能硬编码任何下拉菜单id或grid id.Only是在所有页面中我想显示光标等待所有下拉列表被加载。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

加载页面时,将光标的样式更改为等待。

点击加载的Last DropDownList的DataBound事件。这将在ddl完成加载数据时触发。

//kendo dropdowncode
.Events(events => events.DataBound("onDataBound").

function onDataBound()
{
 //remove wait cursor and replace with default mouse cursor
}

编辑:

您可以在_Layout.cshtml页面中放置将处理游标更改的JS函数,使用该共享布局的任何视图都可以访问这些函数。

就您的Kendo网格而言,您必须手动为每个网格注册事件。您的JS函数将处于共享布局中,因此您不必担心再次添加它们。另一个建议是不使用AJAX来填充下拉列表,并在视图呈现之前“预先填充”它们。我不确定是否有其他方法可以做到这一点。

答案 1 :(得分:0)

您的核心问题是您没有按照设计使用显示器型号。执行AJAX / MVC / JSON Web技术背后的想法是,页面的每个部分都自己调用服务器,并且单独地,部件报告在完成呈现响应时准备就绪。这样,如果页面的一部分需要很长时间才能获得,则用户可以在中间时间与页面的其余部分进行交互。您使用的范例旨在与您尝试做的相反。我给你的建议是彻底检查这个要求。你应该找到一种不这样做的方法。