How to make scrollbar auto enabled or disabled in

2019-04-24 18:27发布

问题:

This is my code for creating the grid:

@{
    if (Model.GenericEntityList.Count > 0)
    {
        @(Html.Kendo().Grid(Model.GenericEntityList).Name(screenNames.ToString()).Columns(
              columns =>
                  {
                      columns.Bound(a => a.ID).Title("<input id='checkAll' type='checkbox' />").ClientTemplate("<input type='checkbox' id=#=genericCheckbox(ID,ViewFlag)#").Width(7);
                      columns.Bound(a => a.Name).Title(screen.ToString() + " Name").Width(93);
                  }
              ).Selectable().Scrollable().DataSource(
                  datasource =>
                  datasource.Ajax().Read(read => read.Action("CompSetHide", "Compset"))
              ).Events(a => a.Change("rowclick")
              )
              .HtmlAttributes(new {style = "height: 185px;"}) 
              )
    }
}

How can I disable and enable the vertical scrollbar that appears inside the kendo grid automatically?

回答1:

You can use something like this to show the vertical scroll bar:

$("#grid .k-grid-content").css({
    "overflow-y": "scroll"
});

and this to hide it:

$("#grid .k-grid-content").css({
    "overflow-y": "hidden"
});

where grid is the id of your grid element.



回答2:

You can add .Scrollable(scrollable => scrollable.Virtual(true))

@{
if (Model.GenericEntityList.Count > 0)
{
    @(Html.Kendo().Grid(Model.GenericEntityList).Name(screenNames.ToString()).Columns(
          columns =>
              {
                  columns.Bound(a => a.ID).Title("<input id='checkAll' type='checkbox' />").ClientTemplate("<input type='checkbox' id=#=genericCheckbox(ID,ViewFlag)#").Width(7);
                  columns.Bound(a => a.Name).Title(screen.ToString() + " Name").Width(93);
              }
          )
.Selectable()
.Scrollable(scrollable => scrollable.Virtual(true))
.DataSource(
              datasource =>
              datasource.Ajax().Read(read => read.Action("CompSetHide", "Compset"))
          ).Events(a => a.Change("rowclick")
          )
          .HtmlAttributes(new {style = "height: 185px;"}) 
          )
}
}


回答3:

Use the k-scrollable attribute

<kendo-grid k-scrollable="false" ... />


回答4:

Below CSS should fix the issue and remove the vertical scrolling as decribed at http://docs.telerik.com/kendo-ui/controls/data-management/grid/appearance#scrolling.

#GridID .k-grid-header
{
   padding: 0 !important;
}

#GridID .k-grid-content
{
   overflow-y: visible;
}


回答5:

If you are using a kendo grid with nested kendo grid in each row and scrolling virtual.(using angular 5) case 1: After expand the and scroll the skip take last count.

sol: use [detailRowHeight] = "36" in parent grid