是否可以在Kendo Grid中组合不同类型的工具栏定义?

时间:2013-05-16 14:43:11

标签: asp.net-mvc razor kendo-ui

我有一些旧代码在网格中定义了一个工具栏,如下所示:

@(Html.Kendo().Grid<Object>().Name("SomeGrid")
    .ToolBar(toolBar => toolBar.Custom()
        .Text("<i class='icon-download'></i> Exportieren")
        .HtmlAttributes(new { id = "export" })
        .Url(Url.Action("Export", "ControllerName", new { page = 1, pageSize = "~", filter = "~", sort = "~", ElementId= ViewBag.CurrKompfGrp }))
    )
...

我想在其中添加更多按钮。 我在其他网格中找到并使用的最佳方法是使用.Template函数:

        .ToolBar(toolbar =>
        {
            toolbar.Template("<a class='btn' id='panelAddAktionButton' onclick='aktionen.addItem();'><i class='icon-plus' rel='tooltip' title='add action'></i> </a> " +
                                "<a class='btn' id='panelEditAktionButton' onclick='aktionen.editItem();'><i class='icon-edit' rel='tooltip' title='Edit action'></i> </a> ");
        })

然而,问题在于我无法看到如何轻松地将一种方法转换为另一种方法。 当我尝试在方法编号1中添加几个项目时,Visual Studio将其强制为错误。 由于网址在第一种方法中是动态的,因此将其转换为第二种方法是有问题的。

我也尝试将两个结合起来 - 但又错了。

感谢任何想法!

1 个答案:

答案 0 :(得分:1)

如果有人遇到同样的问题。剑道人回答说这两种方法不能合并。如果添加了工具栏模板,它将覆盖所有以前的内容。但是,当使用初始方法并将对象传递给工具栏动作生成器时,可以定义多个自定义命令。

我还有一些问题试图使用toolbar.Custom()和bootstrap按钮(每个按钮附近都出现一个空的不必要元素,但Kendo人说这不是一个错误)。所以我最终这样做了:

    .ToolBar(toolbar =>
    {
        toolbar.Template("<a class='btn' id='panelDownloadItemButtonPLZ' onclick=lokaleSperrlisten.downloadSperrliste('grid41897')><i class='icon-download' rel='tooltip' title='Download'></i> </a> " +
                         "<a class='btn ' href='" + Url.Action("ExportSperrlisten", "Vorbereitung", new { page = 1, pageSize = "~", filter = "~", sort = "~", sperrlistenType = "PLZ" }) + "' id='export1'><i class='icon-inbox'  rel='tooltip' title='Export'></i> </a>");
    })

因此,最好的方法是将所有内容转换为Template()结构。 希望,这有助于其他人。