【问题标题】:Kendo UI grid, search box in toolbar in mvcKendo UI 网格,mvc 工具栏中的搜索框
【发布时间】:2015-03-28 12:39:12
【问题描述】:

具有剃刀语法的mvc工具栏中的Kendo-grid搜索框,

我正面临我需要工具栏在哪个搜索框中,这个搜索框搜索到网格数据。

【问题讨论】:

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


    【解决方案1】:

    只需复制并粘贴此代码绑定 mvc 模型和自定义按钮(CRUD)以及剑道网格模板工具栏中的搜索框

    <div>
        @(Html.Kendo().Grid(Model)
        .Name("DiagnosisTestGrid")
        .Columns(columns =>
        {
            columns.Bound(c => c.Description).Title("Description");
            columns.Bound(c => c.Cost).Title("Cost");
            columns.Bound(c => c.CostingRequired).Title("Cost Req.");
            columns.Bound(c => c.DxTestId).ClientTemplate(@"
        <a href='/DiagnosisTest/Details/#=DxTestId#' class = 'dialog-window'>Detail</a> |
        <a href='/DiagnosisTest/Edit/#=DxTestId#' class = 'dialog-window'  >Edit</a> |
        <a href='/DiagnosisTest/Delete/#=DxTestId#' class = 'dialog-window'>Delete</a>
                ").Title("");
        })
    
           .ToolBar(toolbar =>
            {
                toolbar.Template(@<text>
                    <div class="toolbar">
    
                        <div class="row">
                            <div class="col-md-4">
                                <div class="input-group">
                                    <span class="input-group-addon"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></span>
                                    <input type="text" class="form-control" id='FieldFilter' placeholder="Search for...">
                                    <span class="input-group-btn">
                                        <button class="btn btn-default" type="button"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>
                                    </span>
                                </div>
                            </div>
                        </div>
                    </div>
                </text>);
            })
    
         .Resizable(resizing => resizing.Columns(true))
         .Sortable(sorting => sorting.Enabled(true))
         .Reorderable(reorder => reorder.Columns(true))
         .Pageable()
         .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(5)
            .ServerOperation(false)
            ))
    </div>
    

    搜索框脚本。并过滤网格项

    <script>
    $(document).ready(function () {
        $("#FieldFilter").keyup(function () {
    
            var value = $("#FieldFilter").val();
            grid = $("#DiagnosisTestGrid").data("kendoGrid");
    
            if (value) {
                grid.dataSource.filter({ field: "Description", operator: "contains", value: value });
            } else {
                grid.dataSource.filter({});
            }
        });
    });
    

    【讨论】:

    • 试试这个:.k-grid-toolbar { float: right; padding-right: 20px; }
    【解决方案2】:

    我知道这是一个老问题,但似乎接受的答案非常有限。这就是我将搜索框添加到工具栏中的方式。

    .ToolBar(toolBar => toolBar.Template(@<text><input class='k-textbox' value="Search..." onfocus="if (this.value=='Search...') this.value='';" onblur="this.value = this.value==''?'Search...':this.value;" id='searchbox'/></text>))
    

    然后是脚本

    <script type="text/javascript">
        function addSearch() {
            return { searchbox: $('#searchbox').val() };
        }
        $('#searchbox').keyup(function () {
            $('#gridWorkflows').data('kendoGrid').dataSource.read();
        });
    </script>
    

    这似乎比您当前使用的更简单。
    希望对您有所帮助。

    【讨论】:

    • 对于未来的灵魂:将其添加到网格本身,例如.Columns(...) 之后
    • 这个解决方案是如何工作的?我试过了,它不工作。它不搜索任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多