MVC 3 + телерик сетка - PullRequest
       4

MVC 3 + телерик сетка

0 голосов
/ 27 января 2012

У меня есть Telerik Grid на моей странице.Но это работает не правильно.Проблема: когда я нажимаю кнопку, отредактируйте метод выбора кнопки.Мое сеточное представление

@(Html.Telerik().Grid(Model)
    .Name("Grid")
    .DataKeys(keys => keys.Add(c => c.CommandId))
        .DataBinding(dataBinding => 
            {
                dataBinding.Server().Update("Update", "CommandEntity");
                dataBinding.Server().Select("Print",  "CommandEntity");
                dataBinding.Server().Delete("Delete", "CommandEntity");
            })
    .Columns(columns =>
    {
        columns.Bound(o => o.Date).Format("{0:dd/MM/yyyy}").Width(100);
        columns.Bound(o => o.Number).Width(40);
        columns.Bound(o => o.Employees).Width(240);
        columns.Bound(o => o.DayCount).Width(40);
        columns.Bound(o => o.Destinations).Width(220);
        columns.Bound(o => o.ShortTarget).Width(200);
        columns.Bound(o => o.TypeAssignment).Width(90);
        columns.Command(commands =>
        {
            commands.Edit().ButtonType(GridButtonType.Image);
            commands.Delete().ButtonType(GridButtonType.Image);
            commands.Select().ButtonType(GridButtonType.Image);
        }).Width(100).Title("actions");
    })
    .Scrollable(scrolling =>
    {
        scrolling.Enabled(true);
        scrolling.Height("500px");
    })
    .Editable(editing => editing.Mode(GridEditMode.PopUp))
    .Sortable(sorting => sorting.Enabled(true))
    .Pageable(paging =>
        {
            paging.Enabled(true);
            paging.PageSize(15);
        })
    .Filterable(filtering => filtering.Enabled(true))
    .Groupable(grouping => grouping.Enabled(true))
    .Footer(true))

Методы:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(Guid id)
    {
        new DataManager().RemoveCommandEntity(id);
        return RedirectToAction("Index", "CommandEntity");
    }

    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Print(Guid id)
    {
        byte[] rep = Reports.ReportBuilder.CreateReport(id);
        return File(rep, System.Net.Mime.MediaTypeNames.Application.Pdf);
    }


    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Update(CommandEntity obj)
    {
        new DataManager().UpdateCommand(obj);
        HttpContext.Session["Entities"] = null;
        return RedirectToAction("Index", "CommandEntity");
    }

должно вызывать метод Update, но вызывается с именем Print.Пока не было метода Select, все работало нормально.что здесь не так?

1 Ответ

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

Я думаю, что проблема здесь:

DataBinding(dataBinding => 
            {
                dataBinding.Server().Update("Update", "CommandEntity");
                dataBinding.Server().Select("Print",  "CommandEntity");
                dataBinding.Server().Delete("Delete", "CommandEntity");
            })

Привязка данных должна использоваться для привязки Ajax или веб-службы. Если вы хотите использовать привязку к серверу, тогда вы просто привязываетесь к модели, тогда вам вообще не нужно использовать метод DataBinding.

Я думаю, вы должны изменить эту часть кода на:

DataBinding(dataBinding => 
            {
                dataBinding.Ajax().Update("Update", "CommandEntity");
                dataBinding.Ajax().Select("Print",  "CommandEntity");
                dataBinding.Ajax().Delete("Delete", "CommandEntity");
            })

Или, если вы хотите заполнить сетку привязкой к серверу, тогда:

DataBinding(dataBinding => 
            {
                dataBinding.Ajax().Update("Update", "CommandEntity");                    
                dataBinding.Ajax().Delete("Delete", "CommandEntity");
            })
...