【问题标题】:Save virtual scroll position保存虚拟滚动位置
【发布时间】:2019-04-10 15:45:10
【问题描述】:

我有包含大量数据和 100 多页的剑道网格。我需要在滚动离开页面之前保存滚动位置。

我应该根据业务需求保存网格状态,所以:我保存页码和元素Id(在网格中选择它)。但是当滚动位置无法恢复时,这一切都没有用。

@(Html.Kendo().Grid<RegistryInspectionTaskDto>()
          .Name("grid")
          .Columns(columns =>
          {
              columns.Bound(o => o.LocalPlannedStartDate).ClientTemplate("#=DateTimeHelper.GetSimpleClientString(LocalPlannedStartDate)#").Format("{0:g}").Title(InspectionTaskResources.DateLabelText).Width(180);
              columns.Bound(o => o.VehicleNumber).Title(InspectionTaskResources.VinLabelText).Width(187);
              columns.Bound(o => o.TypeName).Title(InspectionTaskResources.TypeLabelText).Width(100);
              columns.Bound(o => o.Id).Hidden(true);
              columns.Bound(o => o.StatusName).ClientTemplate("#=list.GetStatusColumnTemplate(StatusId, StatusName)#").Title(InspectionTaskResources.StatusLabelText);
          })
          .Sortable()
          .Selectable(x=>x.Mode(GridSelectionMode.Single))
          .Scrollable(scrollable => scrollable.Virtual(true))             
          .DataSource(dataSource => dataSource
              .Ajax()
              .PageSize(100)
              .Sort(x=>x.Add("LocalPlannedStartDate").Descending())
              .Read(read => read.Action("GetInspectionTasks", "InspectionTasks").Data("GetFilterParameters"))
          ))

我已经阅读了很多剑道文档/但我什么也没找到。你有什么想法,如何解决这个问题?任何帮助表示赞赏

【问题讨论】:

    标签: c# jquery asp.net kendo-ui kendo-grid


    【解决方案1】:

    如果您存储当前网格行而不是滚动位置会更容易。然后你可以使用剑道选择方法。方法如下:https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/methods/select。不过,如果您需要滚动,您可以使用选择行类并使用 jQuery 来移动滚动。 scrollTo = $('.saveIcon');

    【讨论】:

    • 问题是这不是恒定的数据源,所以不可能从未定义的页面中选择元素并滚动到选定的行/如果我不对,请告诉我
    • 如果我理解正确,您可以使用 UID。 Grid 中的行具有 data-uid 属性。此属性与对应于该行的 DataSource 项相关联。您还可以通过来自不同页面的参数传递它们。或者存储在 cookie 中,以后再使用
    • 但是每次我用网格重新加载页面时,UID都会改变。另外,我不知道如何通过 Id 在数据源中查找元素(仅当显示此元素时),我认为它不可能滚动到网格中的所需元素
    • @OleksaKachmarskyi 请查看示例以及 API 参考。 telerik.com/forums/set-grid-uid-to-datasource-primary-id
    • @cjlmartins,是的,谢谢,但这只有在我们有静态数据源时才有效,而不是动态数据源。不仅适用于 jquery 组件)感谢您的想法,现在我有更多可能尝试解决该问题
    猜你喜欢
    • 2021-02-16
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    相关资源
    最近更新 更多