我有一个包含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是在所有页面中我想显示光标等待所有下拉列表被加载。任何帮助将不胜感激。
答案 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技术背后的想法是,页面的每个部分都自己调用服务器,并且单独地,部件报告在完成呈现响应时准备就绪。这样,如果页面的一部分需要很长时间才能获得,则用户可以在中间时间与页面的其余部分进行交互。您使用的范例旨在与您尝试做的相反。我给你的建议是彻底检查这个要求。你应该找到一种不这样做的方法。