我设置了一个Kendo Window HTML Helper来显示基于用户操作的消息。它只是为了显示消息而消失,然后淡出。由于这个帮助程序将在每个页面上使用并且永远不会更改,因此我决定将其包装在自定义HTML帮助程序中。它看起来像这样:
public static Kendo.Mvc.UI.Fluent.WindowBuilder CustomWindow(this HtmlHelper helper)
{
var animationOpen = new Action<PopupAnimationBuilder>(x => x.Open(open => open.Fade(FadeDirection.In).Zoom(ZoomDirection.In).Duration(700).Expand(ExpandDirection.Vertical)));
var animationClose = new Action<PopupAnimationBuilder>(x => x.Close(close => close.Fade(FadeDirection.Out).Zoom(ZoomDirection.Out).Duration(700).Expand(ExpandDirection.Vertical)));
var window = helper.Kendo().Window().Name("window").Animation(animationOpen).Animation(animationClose).Width(500).Visible(false).Title("Notice");
return window;
}
这很完美但我也有一个javascript函数我想成为一个窗口对象本身的方法。该函数如下所示:
function showMessage(message, title) {
if (title === null) title = "Notice";
var window = $("#window").data("kendoWindow");
window.content("<div style='text-align: center;'><p>" + message + "</p></div>");
window.showWindow();
window.title(title);
window.open();
setTimeout(function () {
window.close();
}, 1400);
}
有没有办法可以从我的自定义帮助器中发出这个,理想情况下是附加它做窗口对象所以我可以做这样的事情:
var window = $("#window").data("kendoWindow");
window.showMessage('Hello');
感谢您的帮助
厄尔
答案 0 :(得分:0)
我无法理解你的问题并且清楚,但是根据我的理解,我猜你正在尝试将一个函数作为属性添加到一个对象。如果这就是您所需要的,那么您可以按照
进行操作 window.showMessage = function (message, title) {
// function statements goes here
}
现在showMessage函数将在window对象中可用,因此您可以像
一样进行访问window.showMessage("This is my message", "Message title");
答案 1 :(得分:0)
有两种方法可以将自定义方法添加到Kendo UI小部件中:
覆盖客户端Kendo UI Window的原型。这应该在任何Window实例初始化之前发生。
kendo.ui.Window.prototype.showMessage = function(message, title) {
this.content("My message");
this.title("My Title");
this.center().open();
var thisObj = this;
setTimeout(function () {
thisObj.close();
}, 1400);
}