Kendo ui 剑道窗口定位
我正在使用Kendo ui 剑道窗口定位,kendo-ui,kendo-window,Kendo Ui,Kendo Window,我正在使用bootstrap模板和剑道窗口,到目前为止,模式剑道窗口的定位并不难。 但现在,当我对某个区域使用不同的布局时,我发现自己在这方面有问题 以下代码将创建居中(x轴)模式剑道窗口: @(Html.Kendo().Window() .Name("Window1") .Visible(false) .Position(builder => builder.Top(100)) .Draggable() .Content(@<div
bootstrap
模板和剑道窗口
,到目前为止,模式剑道窗口的定位并不难。
但现在,当我对某个区域使用不同的布局时,我发现自己在这方面有问题
以下代码将创建居中(x轴)模式剑道窗口:
@(Html.Kendo().Window()
.Name("Window1")
.Visible(false)
.Position(builder => builder.Top(100))
.Draggable()
.Content(@<div class="kendoWindowContent"><p>Please wait...</p><div class="k-loading-image"></div></div>)
.Width(1000)
.Title("Title1")
.Actions(actions => actions.Close())
.Modal(true)
.Resizable())
窗口不是显示在X轴的中间。
剑道窗口居中是否有任何限制。窗口居中需要使用该方法。由于窗口内容是通过Ajax加载的,因此需要将小部件置于事件中心 也可以在每个刷新事件中触发居中,而不是
另一个选项是设置显式和。在这种情况下,您可以随时将窗口居中,因为小部件尺寸在更改(加载)内容后不会改变。好的,我想我很幸运,我的所有剑道窗口碰巧都居中显示,尽管指定了一个明确的顶部偏移,如前所述。 我假设,当只设置了x轴位置时,窗口将自动以y轴为中心。 看来情况并非如此。我真的不知道为什么这在过去一直有效。 无论如何,我找到了一种根据浏览器的视口和窗口宽度将窗口居中的方法: 以防万一有人在乎
function displayWindowCenteredOnYAxis(kendoWindow) {
var windowOptions = kendoWindow.options;
var pos = kendoWindow.wrapper.position();
var viewPortWidth = $(window).width();
var wndWidth = windowOptions.width;
pos.left = viewPortWidth / 2 - wndWidth/2;
kendoWindow.wrapper.css({
left: pos.left
});
kendoWindow.open();
}
用法:
var wnd = $("#id").data("kendoWindow");
wnd.refresh({
url: '@Url.Action("Action", "Controller")'
});
displayWindowCenteredOnYAxis(wnd);
谢谢你的意见!我不希望窗口显示在y轴的中心,而只显示在x轴上(我使用+200到顶部的偏移量(y=0),因此我不能使用center()方法。另一件事是:带有显式设置尺寸和居中窗口的事件没有显示在正中心。您在这里有一个输入错误:wnd.one(“刷新”,函数(e){e.sender.center();});
function displayWindowCenteredOnYAxis(kendoWindow) {
var windowOptions = kendoWindow.options;
var pos = kendoWindow.wrapper.position();
var viewPortWidth = $(window).width();
var wndWidth = windowOptions.width;
pos.left = viewPortWidth / 2 - wndWidth/2;
kendoWindow.wrapper.css({
left: pos.left
});
kendoWindow.open();
}
var wnd = $("#id").data("kendoWindow");
wnd.refresh({
url: '@Url.Action("Action", "Controller")'
});
displayWindowCenteredOnYAxis(wnd);