如何将模板添加到Kendo网格工具栏

时间:2014-07-19 20:36:11

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

我正在尝试向Kendo MVC网格添加自定义模板。 我的模板应包含2件事

  1. 创建按钮以向网格添加新记录
  2. 自动填充框     过滤网格中的数据。
  3. 我正在尝试以下代码:

    .ToolBar(toolbar =>
    {
        toolbar.Template(@<text>
                    <div class="toolbar">
                        <label class="category-label" for="category">Filter by name:</label>
                        @(Html.Kendo().AutoComplete()
                                .Name("employees")
                                .DataTextField("empName")
                                          .Filter("contains")
              .MinLength(3)
              .Events(e => e.Change("nameChange"))
                                .DataSource(ds =>
                                {
                                    ds.Read("FilteringList", "Employee");
                                })
    
                            )
                    </div>
                    </text>);
        toolbar.Create().Text("New Record");
    
    })
    

    但这不起作用。我只能看到自动完成框。

    关于如何完成我的要求的任何想法?

2 个答案:

答案 0 :(得分:6)

Nitin Mall的答案可以通过替换

来简化
<a class="k-button k-button-icontext k-grid-add"   
href="/YourControllerName/YouCreateActionResultJsonName?grdSearch-mode=insert">
New Record</a>

<a class='k-button k-button-icontext k-grid-add' 
href='#'><span class='k-icon k-add'></span>Add new record</a>

这是有效的,因为网格使用jquery委托来附加网格的单击事件处理程序,该处理程序将AddRow方法调用到具有类“k-grid-add”的项目

答案 1 :(得分:2)

删除以下行

toolbar.Create().Text("New Record");
从ToolBar部分

并在模板中添加按钮。 请参阅以下代码:

.ToolBar(toolbar =>
{
toolbar.Template(@<text>
            <div class="toolbar">
                <a class="k-button k-button-icontext k-grid-add" href="/YourControllerName/YouCreateActionResultJsonName?grdSearch-mode=insert">New Record</a>
                <label class="category-label" for="category">Filter by name:</label>
                @(Html.Kendo().AutoComplete()
                        .Name("employees")
                        .DataTextField("empName")
                                  .Filter("contains")
      .MinLength(3)
      .Events(e => e.Change("nameChange"))
                        .DataSource(ds =>
                        {
                            ds.Read("FilteringList", "Employee");
                        })

                    )
            </div>
            </text>);
})