在ASP.NET MVC中单击列时,Kendo网格在空网格上调用read方法

时间:2016-07-07 20:01:27

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

我有一个网格,在点击搜索按钮后加载数据。但是我遇到的问题是,当用户点击任何一列时,它往往会调用数据源读取功能。  是否有任何方法在单击列时停止调用read方法,并且仅在单击搜索按钮时调用read函数?

剃刀:

<div class="col-sm-6">
    <div class="form-group">
        @Html.LabelFor(model => model.EmployeeName, new { @class = "col-sm-4 control-label" })
        <div class="col-sm-8">
            @Html.TextBoxFor(model => model.EmployeeName, new { @class = "form-control"})           
        </div>
    </div>
</div>
<div class="clearfix"></div>
<div class="col-sm-6">
    <div class="form-group">
        <div class="col-sm-8 col-sm-offset-4">
            <input id="btnSearch" type="submit" value="Search" class="btn" />
        </div>
    </div>
</div>


@(Html.Kendo().Grid<Portal.EmployeeViewModel>()
    .Name("GridEmployeeInvitation")
    .Columns(columns =>
    {
        columns.Bound(e => e.EmployeeNumber).Width("160px");
        columns.Bound(e => e.EmployeeName).Width("180px");              
    })
    .Excel(excel => excel
        .FileName("File.xlsx")
        .ProxyURL(Url.Action("Excel_Export_Save", "Shared"))
        .AllPages(true)
    )           
    .Pageable(x => x.PageSizes(new object[] { 10, 20, 50, 100, "All" }))
    .Reorderable(reorder => reorder.Columns(true))
    .AutoBind(false)
    .Selectable()
    .Sortable(sortable => sortable
        .AllowUnsort(true)
        .SortMode(GridSortMode.MultipleColumn))
    .Scrollable(scr => scr.Height(322))
    .Filterable(filterable => filterable
                    .Extra(false)
                    .Operators(operators => operators
                        .ForString(str => str.Clear()
                            .Contains("Contains")
                            .StartsWith("Starts with")
                            .IsEqualTo("Is equal to")
                            .IsNotEqualTo("Is not equal to"))))
    .Resizable(resize => resize.Columns(true))
    .DataSource(dataSource => dataSource
                .Ajax()
                .PageSize(10)
                .ServerOperation(false)
                .Read(read => read.Action("GetEmployees", "Admin").Data("GetSearchParameters"))
                )
)


<script type="text/javascript">
    $('#btnSearch').click(function (e) {
        ('#GridEmployeeInvitation').data('kendoGrid').dataSource.read();
    });

    function GetSearchParameters() {
        return { employeeName: $("#EmployeeName").val()            
           };
    }
</script>

0 个答案:

没有答案