【问题标题】:How to get Kendo Grid to stop refreshing on each filter key press如何让 Kendo Grid 在每次按下过滤器按键时停止刷新
【发布时间】:2022-02-10 04:05:38
【问题描述】:

每次我在任何列顶部的过滤框中键入一个字符时,我的 Ajax 读取方法(“_CustomBinding”)都会被调用 2 次。第一个调用在过滤器框之前填充类型,第二个调用刷新网格。我不希望网格刷新,直到在过滤器框中按下回车键,而不是在每次按键时。如何在过滤器框中的每次按键时禁用刷新网格的调用?

我有一个非常复杂的剑道网格。这只是其中的一部分:

@(Html.Kendo().Grid<ProspectiveAdvantage.ViewModels.MemberListingModel>().Name("Members").TableHtmlAttributes(new { @class = "tblPatient" })
    .AutoBind(Model.AutoPopulateResults)
    .Columns(columns =>
    {
        columns.Bound(theMember => theMember.LastName).Width(30).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false).MinLength(3).SuggestionOperator(FilterType.Contains)));
        columns.Bound(theMember => theMember.FirstName).Width(30).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false).MinLength(3).SuggestionOperator(FilterType.Contains)));
        columns.Bound(theMember => theMember.DisplayClientMemberId).HeaderTemplate("Patient ID").Width(30).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false).MinLength(3).SuggestionOperator(FilterType.Contains)));
        columns.Bound(theMember => theMember.DisplayBirthDate).HeaderTemplate("DOB").Format("{0:MM/dd/yyyy}").Width(30).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false).MinLength(3).SuggestionOperator(FilterType.Contains)));
…
                .DataSource(dataBinding => dataBinding.Ajax()
                .Read(read => read.Action("_CustomBinding", "PCPandCA").Data("members_FetchSearchParameters"))
                .Events(events => events.Error("handleAjaxErrorFromGrid"))
                 .ServerOperation(true)
                 .PageSize(Model.PageSize).Model(model => { model.Id(e => e.MemberID); model.Field(f => f.FirstName); })
                 //default sort DisplaySignatureDue column by ascending
                 .Sort(sort => {
                     if (!AssessmentExpired) { sort.Add("DisplaySignatureDue").Ascending();}
                     if (AssessmentExpired) { sort.Add("DisplayExpiredDate").Ascending();}
                 })
    )
 
    .Pageable(pageable => pageable
        .PageSizes(true)
        .Refresh(true)
    )
    .Sortable()
    .NoRecords("No records found.")
    .Selectable()
    .Filterable(ftb => ftb.Mode(GridFilterMode.Row))
    .Events(events => events.Change("handleGridRowSelected").DataBinding("handleDataBinding").DataBound("handleDataBound").Filter("onFiltering"))
    .HtmlAttributes(new { style = "cursor:pointer;border: 0px;height: 380px;display: flex;overflow-y: scroll;" })
)

【问题讨论】:

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


    【解决方案1】:

    我终于明白为什么我会注意到这种意外行为。我从 Visual Studio 运行我的网站,我的 _CustomBinding 方法中有一个 VS 断点。这将导致我的光标焦点从 UI 中的过滤器字段移动到 VS 中的断点。每当过滤器字段失去焦点时,它都会触发网格刷新。所以,我只看到第二次调用 _CustomBinding 是因为断点,而不是因为网格控件的任何配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 2019-03-18
      • 2014-03-07
      • 1970-01-01
      相关资源
      最近更新 更多