Можем ли мы иметь сетку внутри модельного окна Telerik? - PullRequest
2 голосов
/ 16 января 2012

Я использую архитектуру ASP.NET MVC. У меня есть окно Telerik при нажатии кнопки, которое отлично работает. Код выглядит следующим образом -

    <% Html.Telerik().Window()
           .Name("Search")
           .Visible(false)
           .Title("Select Users")
           .Content(() => {%>                                           
    <% using (Html.BeginForm("GetUsers", "Administration", FormMethod.Post, 
        new{id ="users-form"}))
    {%>

    <p class="note">Mention the Users name to display information</p>                                                 
    <label for="username">Name:</label>                                                        
    <%= Html.TextBox("username") %>                           
    <div class="form-actions">
    <button type="button" class="bUsername">Search</button>
    </div>  
    <% } %>                                           
    <%})
    .Width(400)                                            
    .Modal(true)                                            
    .Render();%>

Но когда я пытаюсь добавить сетку telerik в содержимое окна telerik, это выдает мне ошибку .. код следует

    <%= Html.Telerik().Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(o => o.OrderID).Width(100);
        columns.Bound(o => o.ContactName).Width(200);
        columns.Bound(o => o.ShipAddress);
        columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120);
    })
    .DataBinding(dataBinding => 
    {
        dataBinding.Server().Select("FirstLook", "Grid", new { ajax =
            ViewData["ajax"] });
        dataBinding.Ajax().Select("_FirstLook",
            "Grid").Enabled((bool)ViewData["ajax"]);
    })
    .Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
    .Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
    .Pageable(paging => paging.Enabled((bool)ViewData["paging"]))
    .Filterable(filtering => filtering.Enabled((bool)ViewData["filtering"]))
    .Groupable(grouping => grouping.Enabled((bool)ViewData["grouping"]))
    .Footer((bool)ViewData["showFooter"])
     %>

Ошибка: .Content (() => {%> ---- Делегат System.Func не принимает 0 аргументов.

Итак, я хочу спросить, есть ли у нас сетка внутри модального окна, если да, то как ее реализовать, и если мы не можем, чем ее альтернатива?

Ответы [ 2 ]

2 голосов
/ 28 января 2012

У вас не должно быть проблем с отображением сетки в окне.Следующий код, который использует сущность Customer из базы данных Northwind, отлично работает для меня:

        <% Html.Telerik().Window()
       .Name("TelerikWindow")
       .Title("Grid in Window")
       .Draggable(true)
       .Modal(true)
       .Content(() =>
       { %>
    <%= Html.Telerik().Grid(Model)
            .Name("TelerikGrid")
            .Columns(columns =>
            {
                columns.Bound(c => c.CustomerID);
                columns.Bound(c => c.CompanyName);
                columns.Bound(c => c.ContactName);
                columns.Bound(c => c.Address);
                columns.Bound(c => c.City);
            })
            .Pageable(pageSettings => pageSettings.Enabled(true).PageSize(10))
    %>
    <%})
       .Render();
    %>

Я бы дважды проверил ваш код, чтобы убедиться, что вы правильно настраиваете содержимое окна, так какпохоже, именно отсюда и возникает проблема.

1 голос
/ 29 января 2012

Вы можете определить Grid в Window, используя метод делегата или прямой вывод:

MVC 2:

<% Html.Telerik().Window()
    ...
    .Content(() =>
    {%>
        <%= Html.Telerik().Grid(***)
            ...
        %>
    <%})
    .Render();
%>

MVC 3 Razor:

@(Html.Telerik().Window()
    ...
    .Content(
        @<text>
            @(Html.Telerik().Grid<***>()
                ...
            )
        </text>
    )
)

См. Также:

Сетка внутри окна - Форум

Использование с движком Razor View - Справка

...