Package org.zkoss.zul

Class Grid

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl, Paginated

public class Grid extends MeshElement
A grid is an element that contains both rows and columns elements. It is used to create a grid of elements. Both the rows and columns are displayed at once although only one will typically contain content, while the other may provide size information.

Events: onAfterRender
onAfterRender is sent when the model's data has been rendered.(since 5.0.4)

Besides creating Row programmatically, you can assign a data model (a ListModel or GroupsModel instance) to a grid via setModel(ListModel) or setModel(GroupsModel) and then the grid will retrieve data by calling ListModel.getElementAt(int) when necessary.

Besides assign a list model, you could assign a renderer (a RowRenderer instance) to a grid, such that the grid will use this renderer to render the data returned by ListModel.getElementAt(int). If not assigned, the default renderer, which assumes a label per row, is used. In other words, the default renderer adds a label to a row by calling toString against the object returned by ListModel.getElementAt(int)

There are two ways to handle long content: scrolling and paging. If AbstractComponent.getMold() is "default", scrolling is used if setHeight(java.lang.String) is called and too much content to display. If AbstractComponent.getMold() is "paging", paging is used if two or more pages are required. To control the number of rows to display in a page, use setPageSize(int).

If paging is used, the page controller is either created automatically or assigned explicitly by setPaginal(org.zkoss.zul.ext.Paginal). The paging controller specified explicitly by setPaginal(org.zkoss.zul.ext.Paginal) is called the external page controller. It is useful if you want to put the paging controller at different location (other than as a child component), or you want to use the same controller to control multiple grids.

Default getZclass(): z-grid.(since 3.5.0)

To have a grid without stripping, you can specify a non-existent style class to setOddRowSclass(java.lang.String).

Clustering and Serialization

When used in a clustering environment, you have to make RowRenderer (setRowRenderer(org.zkoss.zul.RowRenderer<?>)) and ListModel (setModel(org.zkoss.zul.ListModel<?>)) either serializable or re-assign them when sessionDidActivate(org.zkoss.zk.ui.Page) is called.

Render on Demand (rod)

[ZK EE] [Since 5.0.0]

For huge data, you can turn on Grid's ROD to request ZK engine to load from ListModel only the required data chunk and create only the required Rows in memory and render only the required DOM elements in browser. So it saves both the memory and the processing time in both server and browser for huge data. If you don't use the ListModel with the Grid, turn on the ROD will still have ZK engine to render only a chunk of DOM elements in browser so it at least saves the memory and processing time in browser. Note that ROD works only if the Grid is configured to has a limited "view port" height. That is, either the Grid is in the "paging" mold or you have to setHeight(String) or setVflex(String) of the Grid to make ROD works.

You can turn on/off ROD for all Grids in the application or only for a specific Grid. To turn on ROD for all Grids in the application, you have to specify the Library Property "org.zkoss.zul.grid.rod" to "true" in WEB-INF/zk.xml. If you did not specify the Library Property, default is false.


	<library-property>
		<name>org.zkoss.zul.grid.rod</name>
		<value>true</value>
	</library-property>
 

To turn on ROD for a specific Grid, you have to specify the Grid's attribute map with key "org.zkoss.zul.grid.rod" to true. That is, for example, if in a zul file, you shall specify <custom-attributes> of the Grid like this:


	<grid ...>
    <custom-attributes org.zkoss.zul.grid.rod="true"/>
  </grid>
 

You can mix the Library Property and <custom-attributes> ways together. The <custom-attributes> way always takes higher priority. So you can turn OFF ROD in general and turn ON only some specific Grid component. Or you can turn ON ROD in general and turn OFF only some specific Grid component.

Since only partial Rows are created and rendered in the Grid if you turn the ROD on, there will be some limitations on accessing Rows. For example, if you call


 Row rowAt100 = (Row) getRows().getChildren().get(100);
 

The Row in index 100 is not necessary created yet if it is not in the current "view port" and you will get "null" instead.

And it is generally a bad idea to "cache" the created Row in your application if you turn the ROD on because rows might be removed later. Basically, you shall operate on the item of the ListModel rather than on the Row if you use the ListModel and ROD.

Custom Attributes

org.zkoss.zul.grid.rod
Specifies whether to enable ROD (render-on-demand).
Notice that you could specify this attribute in any of its ancestor's attributes. It will be inherited.
org.zkoss.zul.grid.autoSort
.(since 5.0.7)
Specifies whether to sort the model when the following cases:
  1. setModel(org.zkoss.zul.ListModel<?>) is called and Column.setSortDirection(java.lang.String) is set.
  2. Column.setSortDirection(java.lang.String) is called.
  3. Model receives ListDataEvent and Column.setSortDirection(java.lang.String) is set.
If you want to ignore sort when receiving ListDataEvent, you can specifies the value as "ignore.change".
Notice that you could specify this attribute in any of its ancestor's attributes. It will be inherited.
org.zkoss.zul.grid.preloadSize
.(since 5.0.8)
Specifies the number of rows to preload when receiving the rendering request from the client.

It is used only if live data (setModel(ListModel) and not paging (getPagingChild()).

org.zkoss.zul.grid.initRodSize
.(since 5.0.8)
Specifies the number of rows rendered when the Grid first render.

It is used only if live data (setModel(ListModel) and not paging (getPagingChild()).

Author:
tomyeh
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected class 
    A utility class to implement HtmlBasedComponent.getExtraCtrl().

    Nested classes/interfaces inherited from class org.zkoss.zul.impl.MeshElement

    MeshElement.InternalPaging

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

    org.zkoss.zk.ui.AbstractComponent.Children, org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.AbstractComponent.TargetInfo
  • Field Summary

    Fields inherited from class org.zkoss.zul.impl.MeshElement

    CSS_FLEX_AUTO_DISABLED_COUNT

    Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    _zclass

    Fields inherited from interface org.zkoss.zk.ui.Component

    APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE

    Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

    AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    beforeChildAdded(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
     
     
    org.zkoss.zk.ui.Component
    getCell(int row, int col)
    Returns the specified cell, or null if not available.
    Returns the columns.
    Returns the message to display when there are no items
     
    Returns the foot.
    Returns the frozen child.
    <D, G, F> GroupsModel<D,G,F>
    Returns the groups model associated with this grid, or null if this grid is associated with a ListModel or not associated with any list data model.
    Collection<org.zkoss.zk.ui.Component>
    Returns a collection of heads, including getColumns() and auxiliary heads (Auxhead) (never null).
    Returns the inner width of this component.
    <T> ListModel<T>
    Returns the list model associated with this grid, or null if this grid is associated with a GroupsModel or not associated with any list data model.
    <T> ListModel<T>
    Returns the model associated with this grid, or null if this grid is not associated with any list data model.
    Returns the style class for the odd rows.
    Returns the paging controller, or null if not available.
    Returns the child paging controller that is created automatically, or null if mold is not "paging", or the controller is specified externally by setPaginal(org.zkoss.zul.ext.Paginal).
    org.zkoss.zk.ui.sys.PropertyAccess
     
    Returns the responsive policy.
    Returns the responsive columns token string.
    <T> RowRenderer<T>
    Returns the renderer to render each row, or null if the default renderer is used.
    Returns the rows.
    int
    Returns the visible rows.
     
    boolean
    insertBefore(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
     
    protected boolean
     
    boolean
    Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
    void
     
    void
    Handles a private event, onInitRender.
    void
    onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage)
     
    void
    onPageDetached(org.zkoss.zk.ui.Page page)
     
    void
    Handles a private event, onPagingInitRender.
    protected Paginal
    pgi()
    Returns the instance of the @{link Paginal}
    boolean
    removeChild(org.zkoss.zk.ui.Component child)
     
    void
    Renders all Row if not loaded yet, with getRowRenderer().
    void
    renderItems(Set<? extends Row> rows)
     
    protected void
    renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer)
     
    void
    Renders the specified Row if not loaded yet, with getRowRenderer().
    void
    renderRows(Set<? extends Row> rows)
    Renders a set of specified rows.
    void
    scrollToIndex(int index)
    Scroll to the specified row by the given index.
    void
    service(org.zkoss.zk.au.AuRequest request, boolean everError)
    Processes an AU request.
    void
    sessionDidActivate(org.zkoss.zk.ui.Page page)
     
    void
    sessionWillPassivate(org.zkoss.zk.ui.Page page)
     
    void
    setActivePage(int pg)
    Sets the active page (starting from 0).
    void
    setEmptyMessage(String emptyMessage)
    Sets the message to display when there are no items
    void
    setHeight(String height)
     
    void
    setInnerWidth(String innerWidth)
    Sets the inner width of this component.
    void
    setModel(GroupsModel<?,?,?> model)
    Sets the groups model associated with this grid.
    void
    setModel(ListModel<?> model)
    Sets the list model associated with this grid.
    void
    Sets the mold to render this component.
    void
    Sets the style class for the odd rows.
    void
    setPageSize(int pgsz)
    Sets the page size, a.k.a., the number rows per page.
    void
    Specifies the paging controller.
    void
    setResponsive(String responsive)
    Sets the responsive policy.
    void
    Sets the responsive columns token string for stacking mode.
    void
    Sets the renderer by use of a class name.
    void
    Sets the renderer which is used to render each row if getModel() is not null.
    void
    setVflex(boolean vflex)
    Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
    void
     
    void
    setVisibleRows(int visibleRows)
    Sets the visible rows.

    Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    addSclass, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getSkeleton, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setSkeleton, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly

    Methods inherited from class org.zkoss.zk.ui.AbstractComponent

    addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Grid

      public Grid()
  • Method Details

    • onPageAttached

      public void onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage)
      Specified by:
      onPageAttached in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      onPageAttached in class org.zkoss.zk.ui.AbstractComponent
    • onPageDetached

      public void onPageDetached(org.zkoss.zk.ui.Page page)
      Specified by:
      onPageDetached in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      onPageDetached in class org.zkoss.zk.ui.AbstractComponent
    • isVflex

      public boolean isVflex()
      Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.

      Default: false.

      Since:
      3.5.0
    • setVflex

      public void setVflex(boolean vflex)
      Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
      Since:
      3.5.0
    • setVflex

      public void setVflex(String flex)
      Overrides:
      setVflex in class org.zkoss.zk.ui.HtmlBasedComponent
    • getRows

      public Rows getRows()
      Returns the rows.
    • getColumns

      public Columns getColumns()
      Returns the columns.
    • getFoot

      public Foot getFoot()
      Returns the foot.
    • getFrozen

      public Frozen getFrozen()
      Returns the frozen child.
      Since:
      5.0.0
    • getHeads

      public Collection<org.zkoss.zk.ui.Component> getHeads()
      Returns a collection of heads, including getColumns() and auxiliary heads (Auxhead) (never null).
      Since:
      3.0.0
    • getCell

      public org.zkoss.zk.ui.Component getCell(int row, int col)
      Returns the specified cell, or null if not available.
      Parameters:
      row - which row to fetch (starting at 0).
      col - which column to fetch (starting at 0).
    • getVisibleRows

      public int getVisibleRows()
      Returns the visible rows. Zero means no limitation.

      Default: 0.

      Since:
      8.5.0
    • setVisibleRows

      public void setVisibleRows(int visibleRows) throws org.zkoss.zk.ui.WrongValueException
      Sets the visible rows.

      Note: Not allowed to set visibleRows and height/vflex at the same time

      Throws:
      org.zkoss.zk.ui.WrongValueException
      Since:
      8.5.0
    • setHeight

      public void setHeight(String height)
      Overrides:
      setHeight in class org.zkoss.zk.ui.HtmlBasedComponent
    • getPaginal

      public Paginal getPaginal()
      Returns the paging controller, or null if not available. Note: the paging controller is used only if AbstractComponent.getMold() is "paging".

      If mold is "paging", this method never returns null, because a child paging controller is created automatically (if not specified by developers with setPaginal(org.zkoss.zul.ext.Paginal)).

      If a paging controller is specified (either by setPaginal(org.zkoss.zul.ext.Paginal), or by setMold(java.lang.String) with "paging"), the grid will rely on the paging controller to handle long-content instead of scrolling.

    • setPaginal

      public void setPaginal(Paginal pgi)
      Specifies the paging controller. Note: the paging controller is used only if AbstractComponent.getMold() is "paging".

      It is OK, though without any effect, to specify a paging controller even if mold is not "paging".

      Parameters:
      pgi - the paging controller. If null and AbstractComponent.getMold() is "paging", a paging controller is created automatically as a child component (see getPagingChild()).
    • getPagingChild

      public Paging getPagingChild()
      Returns the child paging controller that is created automatically, or null if mold is not "paging", or the controller is specified externally by setPaginal(org.zkoss.zul.ext.Paginal).
      Since:
      3.0.7
    • pgi

      protected Paginal pgi()
      Description copied from class: MeshElement
      Returns the instance of the @{link Paginal}
      Specified by:
      pgi in class MeshElement
    • getModel

      public <T> ListModel<T> getModel()
      Returns the model associated with this grid, or null if this grid is not associated with any list data model.

      Note: if setModel(GroupsModel) was called with a groups model, this method returns an instance of ListModel encapsulating it.

      See Also:
    • getListModel

      public <T> ListModel<T> getListModel()
      Returns the list model associated with this grid, or null if this grid is associated with a GroupsModel or not associated with any list data model.
      Since:
      3.5.0
      See Also:
    • getGroupsModel

      public <D, G, F> GroupsModel<D,G,F> getGroupsModel()
      Returns the groups model associated with this grid, or null if this grid is associated with a ListModel or not associated with any list data model.
      Since:
      3.5.0
      See Also:
    • setModel

      public void setModel(ListModel<?> model)
      Sets the list model associated with this grid. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render.
      Parameters:
      model - the list model to associate, or null to dissociate any previous model.
      Throws:
      org.zkoss.zk.ui.UiException - if failed to initialize with the model
      See Also:
    • setModel

      public void setModel(GroupsModel<?,?,?> model)
      Sets the groups model associated with this grid. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render.

      The groups model is used to represent a list of data with grouping.

      Parameters:
      model - the groups model to associate, or null to dissociate any previous model.
      Throws:
      org.zkoss.zk.ui.UiException - if failed to initialize with the model
      Since:
      3.5.0
      See Also:
    • getRowRenderer

      public <T> RowRenderer<T> getRowRenderer()
      Returns the renderer to render each row, or null if the default renderer is used.
    • setRowRenderer

      public void setRowRenderer(RowRenderer<?> renderer)
      Sets the renderer which is used to render each row if getModel() is not null.

      Note: changing a render will not cause the grid to re-render. If you want it to re-render, you could assign the same model again (i.e., setModel(getModel())), or fire an ListDataEvent event.

      Parameters:
      renderer - the renderer, or null to use the default.
      Throws:
      org.zkoss.zk.ui.UiException - if failed to initialize with the model
    • setRowRenderer

      Sets the renderer by use of a class name. It creates an instance automatically.
      Throws:
      ClassNotFoundException
      NoSuchMethodException
      IllegalAccessException
      InstantiationException
      InvocationTargetException
    • setInnerWidth

      public void setInnerWidth(String innerWidth)
      Sets the inner width of this component. The inner width is the width of the inner table. By default, it is 100%. That is, it is the same as the width of this component. However, it is changed when the user is sizing the column's width.

      Application developers rarely call this method, unless they want to preserve the widths of sizable columns changed by the user. To preserve the widths, the developer have to store the widths of all columns and the inner width (getInnerWidth()), and then restore them when re-creating this component.

      Parameters:
      innerWidth - the inner width. If null, "100%" is assumed.
      Since:
      3.0.0
    • getInnerWidth

      public String getInnerWidth()
      Returns the inner width of this component. The inner width is the width of the inner table.

      Default: "100%"

      Since:
      3.0.0
      See Also:
    • onInitRender

      public void onInitRender()
      Handles a private event, onInitRender. It is used only for implementation, and you rarely need to invoke it explicitly.
    • onPagingInitRender

      public void onPagingInitRender()
      Handles a private event, onPagingInitRender. It is used only for implementation, and you rarely need to invoke it explicitly.
    • renderRow

      public void renderRow(Row row)
      Renders the specified Row if not loaded yet, with getRowRenderer().

      It does nothing if getModel() returns null. In other words, it is meaningful only if live data model is used.

    • renderAll

      public void renderAll()
      Renders all Row if not loaded yet, with getRowRenderer().
    • renderRows

      public void renderRows(Set<? extends Row> rows)
      Renders a set of specified rows. It is the same as renderItems(java.util.Set<? extends org.zkoss.zul.Row>).
    • renderItems

      public void renderItems(Set<? extends Row> rows)
    • getOddRowSclass

      public String getOddRowSclass()
      Returns the style class for the odd rows.

      Default: getZclass()-odd. (since 3.5.0)

      Since:
      3.0.0
    • setOddRowSclass

      public void setOddRowSclass(String scls)
      Sets the style class for the odd rows. If the style class doesn't exist, the striping effect disappears. You can provide different effects by providing the proper style classes.
      Since:
      3.0.0
    • setMold

      public void setMold(String mold)
      Sets the mold to render this component.
      Specified by:
      setMold in interface org.zkoss.zk.ui.Component
      Overrides:
      setMold in class org.zkoss.zk.ui.AbstractComponent
      Parameters:
      mold - the mold. If null or empty, "default" is assumed. Allowed values: default, paging
      See Also:
      • ComponentDefinition
    • getZclass

      public String getZclass()
      Overrides:
      getZclass in class org.zkoss.zk.ui.HtmlBasedComponent
    • beforeChildAdded

      public void beforeChildAdded(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
      Specified by:
      beforeChildAdded in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      beforeChildAdded in class org.zkoss.zk.ui.AbstractComponent
    • insertBefore

      public boolean insertBefore(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
      Specified by:
      insertBefore in interface org.zkoss.zk.ui.Component
      Overrides:
      insertBefore in class org.zkoss.zk.ui.AbstractComponent
    • removeChild

      public boolean removeChild(org.zkoss.zk.ui.Component child)
      Specified by:
      removeChild in interface org.zkoss.zk.ui.Component
      Overrides:
      removeChild in class org.zkoss.zk.ui.AbstractComponent
    • isAutohidePaging

      protected boolean isAutohidePaging()
      Specified by:
      isAutohidePaging in class MeshElement
    • clone

      public Object clone()
      Specified by:
      clone in interface org.zkoss.zk.ui.Component
      Overrides:
      clone in class XulElement
    • getEmptyMessage

      public String getEmptyMessage()
      Returns the message to display when there are no items
      Returns:
      String
      Since:
      5.0.7
    • setEmptyMessage

      public void setEmptyMessage(String emptyMessage)
      Sets the message to display when there are no items
      Parameters:
      emptyMessage -
      Since:
      5.0.7
    • renderProperties

      protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws IOException
      Overrides:
      renderProperties in class MeshElement
      Throws:
      IOException
    • getResponsive

      public String getResponsive()
      Returns the responsive policy.

      Default: null (unset — inherits from zk.xml org.zkoss.zul.grid.responsive, then framework default of no responsive).

      Stacking behavior is provided by ZK EE (zkmax); CE stores the value only.

      Returns:
      the responsive policy, or null if not set.
      Since:
      11.0.0
    • setResponsive

      public void setResponsive(String responsive) throws org.zkoss.zk.ui.WrongValueException
      Sets the responsive policy.

      Supported values: "stacking", "none", or null (unset).

      • "stacking" — rows become vertical key-value blocks when the container width falls below the breakpoint (EE only).
      • "none" — explicitly disables responsive, overriding any global setting.
      • null — inherits from the global library property.
      Parameters:
      responsive - the responsive policy
      Throws:
      org.zkoss.zk.ui.WrongValueException - if responsive is neither "stacking", "none", nor null.
      Since:
      11.0.0
    • getResponsiveColumns

      public String getResponsiveColumns()
      Returns the responsive columns token string.

      Default: null (unset — inherits from zk.xml org.zkoss.zul.grid.responsive.columns, then framework default "sm-1 md-none" resolved by the client).

      Returns:
      the responsive columns token string, or null if not set.
      Since:
      11.0.0
    • setResponsiveColumns

      public void setResponsiveColumns(String columns)
      Sets the responsive columns token string for stacking mode.

      Bootstrap-style breakpoint tokens separated by whitespace, where each token is <breakpoint>-<value> with breakpoint in {sm, md, lg, xl, xxl} and value either a positive integer (cards per row in stacking) or none (switch back to table mode at and above this breakpoint).

      The string is stored verbatim — parsing, cascade resolution, and matching against the current container width happen on the client side. Invalid tokens are silently dropped by the client cascade resolver. A value whose kept tokens are all none without an sm entry is discarded as a whole and the client falls back to its default cascade.

      Parameters:
      columns - the responsive columns token string
      Since:
      11.0.0
    • sessionWillPassivate

      public void sessionWillPassivate(org.zkoss.zk.ui.Page page)
      Specified by:
      sessionWillPassivate in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      sessionWillPassivate in class org.zkoss.zk.ui.AbstractComponent
    • sessionDidActivate

      public void sessionDidActivate(org.zkoss.zk.ui.Page page)
      Specified by:
      sessionDidActivate in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      sessionDidActivate in class org.zkoss.zk.ui.AbstractComponent
    • getExtraCtrl

      public Object getExtraCtrl()
      Specified by:
      getExtraCtrl in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      getExtraCtrl in class org.zkoss.zk.ui.HtmlBasedComponent
    • getPropertyAccess

      public org.zkoss.zk.ui.sys.PropertyAccess getPropertyAccess(String prop)
      Specified by:
      getPropertyAccess in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      getPropertyAccess in class XulElement
    • service

      public void service(org.zkoss.zk.au.AuRequest request, boolean everError)
      Processes an AU request.

      Default: in addition to what are handled by HtmlBasedComponent.service(AuRequest, boolean), it also handles onSelect.

      Specified by:
      service in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      service in class org.zkoss.zk.ui.HtmlBasedComponent
      Since:
      5.0.0
    • setActivePage

      public void setActivePage(int pg) throws org.zkoss.zk.ui.WrongValueException
      Description copied from class: MeshElement
      Sets the active page (starting from 0).
      Overrides:
      setActivePage in class MeshElement
      Throws:
      org.zkoss.zk.ui.WrongValueException
    • setPageSize

      public void setPageSize(int pgsz) throws org.zkoss.zk.ui.WrongValueException
      Description copied from class: MeshElement
      Sets the page size, a.k.a., the number rows per page.
      Overrides:
      setPageSize in class MeshElement
      Throws:
      org.zkoss.zk.ui.WrongValueException
    • onAfterRender

      public void onAfterRender()
    • scrollToIndex

      public void scrollToIndex(int index)
      Scroll to the specified row by the given index.
      Parameters:
      index - the index of row
      Since:
      8.5.2