Создать Telerik MVC сетки в коде позади? - PullRequest
0 голосов
/ 07 января 2012

Я пытался выяснить, как создать сетку Telerik MVC в codebehind?У Telerik Docs есть способ сделать это с RadGrid, но не с их контролем MVC Grid.

Что я в основном пытаюсь сделать, это создать сетку, основанную на некоторых условиях, например, у меня может быть такая сетка, как эта:

 Html.Telerik().Grid<ZeDate>("dates")
        .Name("MyGrid")
        .Pageable(paging => paging.PageSize(10))
        .Sortable()
        .Filterable()
        .Groupable()
        .ColumnContextMenu()
        .DataKeys(keys => keys.Add(c => c.id))
        .DataBinding(dataBinding =>
        {
            dataBinding.Ajax()
            .Select("_SelectAjaxEditing", "Dates")
            .Insert("_InsertAjaxEditing", "Dates")
            .Update("_SaveAjaxEditing", "Dates")
            .Delete("_DeleteAjaxEditing", "Dates");
        })
        .ToolBar(commands => commands.Insert())
        .Columns(columns =>
        {
            columns.Bound(o => o.name);
            columns.Bound(o => o.date1);
            columns.Command(commands =>
            {
                commands.Edit().ButtonType(GridButtonType.Text);
                commands.Delete().ButtonType(GridButtonType.BareImage);
            }).Width(185);
        })
        .Editable(editing => editing.Mode(GridEditMode.InForm))
        .Render();

Но в некоторых случаях я мог бы не захотеть показывать конкретный столбец, такой как 'date1', или я мог бы не захотеть разрешить фильтрацию сетки, в основном такие вещи.

Ответы [ 2 ]

3 голосов
/ 07 января 2012

Помимо «отсутствия кода», о котором упоминал Мистер Мэн, существует несколько различных способов выполнения условных аспектов в представлении MVC с помощью Telerik.Так как Telerik использует свободный интерфейс, вы можете установить его в переменную и воспользоваться этим.Так, например, вы можете сделать:

var telerik = Html.Telerik().Grid<ZeDate>("dates")
    .Name("MyGrid")
    .Columns(columns =>
    {
        columns.Bound(o => o.name);

        // Only render the date column if the designated
        if (Model.CanSeeDate)
        {
            columns.Bound(o => o.date1);
        }
    });

// Only let the grid be filterable if allowed
if (Model.GridFilterable)
{
    telerik = telerik.Filterable();
}

// Perform other telerik setup
telerik.Render();
2 голосов
/ 07 января 2012

MVC не имеет кода позади. Ну, это не совсем так, вы можете использовать выделенный код в представлениях WebForms, но это побочный эффект от использования механизма WebForms, и его использование настоятельно не рекомендуется.

В любом случае вы должны использовать кодовый код только тогда, когда вам нужно использовать серверный элемент управления webforms. Поскольку элементы управления MVC не используют жизненный цикл страницы WebForms, выделенные фрагменты кода их не используют.

Возможно, вы сможете объяснить, что вы пытаетесь сделать.

EDIT:

Судя по вашим изменениям, я все еще не понимаю. Вы можете делать все это в представлении, вам не нужен код позади. Какова ваша причина для использования кода позади

...