定位编辑形式poprik for telerik mvc grid

时间:2010-12-01 17:52:25

标签: model-view-controller grid popup telerik edit

有人能告诉我是否有办法将mvc网格的编辑表格Popup定位到屏幕中心?

5 个答案:

答案 0 :(得分:3)

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

  

然而我操纵了这个位置   在客户端on_edit上使用jquery   telerik网格的API。

var popup = $("#" + e.currentTarget.id + "PopUp");

 popup.css({ "left": ($(window).width()/2 - $(popup).width()/2) + "px", "top": ($(window).height()/2 - $(popup).height()/2) + "px" }); 

e.currentTarget.id给出了网格名称。

答案 1 :(得分:3)

我的朋友通过使用telerik网格未公开的内置功能找到了最简单的方法

        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();

将这段代码放在网格的客户端on_edit api中,你会看到魔法

答案 2 :(得分:0)

不确定是否可以使用配置选项自动完成 - 现在在实时演示中,弹出窗口在网格中居中。我的猜测是你可以用javascript ...

将它放在屏幕的中心

答案 3 :(得分:0)

在使用单独定义的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> 

您将在createCompany函数中注意到我调用window.center()。open()。这显然是弹出窗口的中心。

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

答案 4 :(得分:0)

@(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() });
}