Model view controller telerik mvc网格定位编辑表单弹出窗口

Model view controller telerik mvc网格定位编辑表单弹出窗口,model-view-controller,grid,popup,telerik,edit,Model View Controller,Grid,Popup,Telerik,Edit,有人能告诉我,是否有方法将mvc网格的编辑表单弹出窗口定位到屏幕中心?不确定是否可以使用配置选项自动完成此操作-现在在实况演示中,弹出窗口位于网格中心。我的猜测是,您可以使用javascript将其定位在屏幕中央…在使用单独定义的Telerik Mvc窗口使用自定义弹出窗口之前,我已经这样做了。我的示例代码如下所示: <%= Html.Telerik().Window() .Name("CompanyWindow") .Title("Company Details")

有人能告诉我,是否有方法将mvc网格的编辑表单弹出窗口定位到屏幕中心?

不确定是否可以使用配置选项自动完成此操作-现在在实况演示中,弹出窗口位于网格中心。我的猜测是,您可以使用javascript将其定位在屏幕中央…

在使用单独定义的Telerik Mvc窗口使用自定义弹出窗口之前,我已经这样做了。我的示例代码如下所示:

   <%= Html.Telerik().Window()
    .Name("CompanyWindow")
    .Title("Company Details")
    .Buttons(b => b.Maximize().Close())
    .Visible(false)
    .Modal(true)
    .Width(600)
    .Height(600)
    .Draggable(true) 
    .Resizable()
%>

<% Html.Telerik().Grid<Vigilaris.Booking.Services.CompanySummaryDTO>()
   .Name("CompaniesGrid")
   .ToolBar(tb => tb.Template(() => { %>
       <a href ="#" onclick="createCompany()" >Insert</a>
       <% }))
   .Columns(col =>
       {
           col.Bound(c => c.Id).Width(20);
           col.Bound(c => c.CompanyName).Width(120);
           col.Bound(c => c.ResponsiblePersonFullName).Width(160);
           col.Bound(c => c.ResponsiblePersonUserName).Width(160);
           col.Bound(c => c.ResponsiblePersonEmail).Width(160);
           col.Command(cmd =>
               {
                   cmd.Edit().ButtonType(GridButtonType.Image);
               }).Title("Edit");
       })
   .DataKeys(keys => keys.Add(c => c.Id))
   .DataBinding(binding => binding.Ajax()
       .Select("_IndexAjax", "Company")
       .Insert("_InsertAjax", "Company")
       .Update("_UpdateAjax", "Company")
   )
   .Sortable()
   .Render();
%>

<script type="text/javascript">
    function createCompany() {
        var url = '<%= Url.Action("New", "Company") %>'
        $.post(url, function (data) {
            var window = $('#CompanyWindow').data('tWindow');
            window.content(data);
            window.center().open();
        });
    }
</script> 
b.最大化().关闭())
.可见(假)
.模态(真)
.宽度(600)
.高度(600)
.Draggable(真)
.可调整大小()
%>
tb.Template(()=>{%>
{
col.Bound(c=>c.Id).宽度(20);
col.Bound(c=>c.CompanyName).Width(120);
col.Bound(c=>c.ResponsiblePersonFullName).Width(160);
col.Bound(c=>c.ResponsiblePersonUserName).Width(160);
col.Bound(c=>c.ResponsiblePersonEmail).Width(160);
col.Command(cmd=>
{
cmd.Edit().ButtonType(GridButtonType.Image);
}).标题(“编辑”);
})
.DataKeys(keys=>keys.Add(c=>c.Id))
.DataBinding(binding=>binding.Ajax()
.选择(“_IndexAjax”,“Company”)
.插入(“\u InsertAjax”,“公司”)
.Update(“\u UpdateAjax”,“公司”)
)
.Sortable()
.Render();
%>
函数createCompany(){
var url=''
$.post(url、函数(数据){
var window=$('#公司窗口')。数据('tWindow');
窗口。内容(数据);
window.center().open();
});
}
您会注意到,在createCompany函数中,我调用window.center().open()。这会显式地将弹出窗口居中


然而,我不认为这正是你想要做的,但它可能会给你一些正确方向的指针。我希望这会有所帮助。

感谢各位的有效答案。我知道我们可以定位一个自定义弹出窗口,但不适用于内置编辑模式窗口

但是我操纵了这个位置 客户端jquery处于编辑状态 telerik网格的API


e、 currentTarget.id给出了gridname。

我的朋友通过使用telerik grid的一个未公开的内置函数找到了最简单的方法

        var popup = $("#" + e.currentTarget.id + "PopUp");
        //get the data window contained by the popup
        var popupDataWin = popup.data("tWindow");

        //change popup title by calling the title 
        popupDataWin.title("Custom Title");            
        //center the window by calling the method center
        popupDataWin.center();
将这段代码放在网格的编辑api的客户端,您将看到它的神奇之处

@(Html.Telerik().Grid()
.Name("FormFildGrid")
.ClientEvents(events => events.OnEdit("Grid_onEdit"))
)


您能为您的示例添加更多的上下文吗?您在客户端的何处添加此内容?这段代码应该放在telerik网格的客户端OnEdit API中。大多数弹出问题在新版本的terik中得到了重新解决,因此此问题可能也得到了解决。。
@(Html.Telerik().Grid()
.Name("FormFildGrid")
.ClientEvents(events => events.OnEdit("Grid_onEdit"))
function Grid_onEdit(e) {
    var popup = $("#" + e.currentTarget.id + "PopUp");
    var popupDataWin = popup.data("tWindow");
    var l = ($(window).width() / 2 - $(popup).width() / 2);
    popup.css({ "left": l + "px", "margin-left": "0", "width": $(popup).width() });
}