Renderable Commands
*******************
This type of commands generate html tags as rendering result.
.. note::
The :class:`Renderable Commands` inherit from :doc:`../command-base`.
.. code-block:: html
:caption: general structure of renderable commands
:linenos:
...
...
...
...
...
...
Attributes
==========
datamembername :class:`string` :class:`required` :class:`[##-notation`
Determine data source name that serve to get source data for use in rendering process.
For more information see :doc:`../data-binding`
Tags
====
layout :class:`optional` :class:`single`
Determine output structure of rendering result and add extra tag to beginning or end of generated html tags.
Only one :class:`layout` tag Allowed and default value is :class:`@child`.
For more information see :doc:`base/layout-tag`.
For example see :ref:`Use-simple-layout`.
face :class:`required` :class:`multi`
Determine template for rendering process.
At last one :class:`face` tag required.
For more information see :doc:`base/face-tag`.
For example see :ref:`Use Simple Face `.
replace :class:`optional` :class:`multi`
Use this tag add functionality for format some section in face rendering result.
Multi :class:`replace` tag Allowed and default value is :class:`null`.
For more information see :doc:`base/replace-tag`.
For example see :ref:`Use Replace `.
divider :class:`optional` :class:`single`
The :class:`divider` tag use for determine delimiter content between two data row rendering result.
Only one :class:`divider` tag Allowed and default value is :class:`null`.
For more information see :doc:`base/divider-tag`.
For example see :ref:`Use Divider `.
incomplete :class:`optional` :class:`single`
The :class:`incomplete` tag use for determine empty cell template when rendering result in some command like :doc:`view` that generate rows with data present as cells like view-card template.
Only one :class:`incomplete` tag Allowed and default value is :class:`null`.
For more information see :doc:`base/incomplete-tag`
For example see :ref:`Use Incomplete Tag `.
else-layout :class:`optional` :class:`single`
The :class:`else-layout` tag use for determine no-data template when rendering result don't generate result.
Only one :class:`else-layout` tag Allowed and default value is :class:`null`.
For more information see :doc:`base/else-layout-tag`.
For example see :ref:`Use Else-Layout Tag `.
.. note::
For see more Information about :class:`[##-notation`,see :doc:`../[-sharp-sharp-notation`
Remarks
=======
In :class:`renderable command` rendering process for create output consist of some steps.
In first step, data source determined by :class:`datamembername` attribute load from :doc:`/host/context-object`.
If data not exist, rendering process wait until data loaded in :class:`Context`.
In next step for each data item (object or row) in data source (collection or table) preferred :class:`face` selected by checking :class:`face` related attributes like :class:`filter`.
Order of selecting face is from up to down in order that :class:`face` declared in command.
So in case of two :class:`face` that pass data item checking, first of them is selected for rendering.
In next step, data injection process run and data item apply to :class:`face` :class:`template` using :class:`@ Notation`.
.. note::
For more information about :class:`face` rendering process, see :doc:`base/face-tag`.
In next step if :class:`replace` tags exist and active in :class:`face`, apply to rendering result and add extra formatting to command output.
Next step use :class:`divider` and :class:`incomplete` tags for format output for grid base result.
If generated result til now is empty, :class:`else-layout` use for generate result.
.. toctree::
:titlesonly:
:caption: Commands
:hidden:
base/layout-tag
base/face-tag
base/replace-tag
base/divider-tag
base/incomplete-tag
base/else-layout-tag
print
list
view
tree