RichFaces Developer Guide 3.3.3(6-6)

6.6          数据迭代

 

以下组件迭代一个集合的整个数据,并在页面上显示它们。

 

6.6.1     < rich:column >,从3.0.0版开始可用

 

6.6.1.1    描述

 

该组件是指在UIData组件中渲染行。

 

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

图6.13.   <rich:column>组件

 

6.6.1.2    主要功能

 

n         完美的皮肤表行和子元素。

n         可以利用"colspan"的帮助合并行。

n         可以利用"rowspan""breakBefore"的帮助合并列。

n         排序列值。

n         过滤列值。

 

[重要,"colspan""rowspan""breakBefore"属性只影响在<rich:dataTable>中的列,不影响在<rich:extendedDataTable>中的。]

 

6.6.1.3    使用细节

 

要输出简单的表,<rich:column>的用法和标准的<h:column>一样。请下面的例子:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">

     <rich:column>

          <f:facet name="header">State Flag</f:facet>

          <h:graphicImage value="#{cap.stateFlag}"/>

     </rich:column>

     <rich:column>

           <f:facet name="header">State Name</f:facet>

           <h:outputText value="#{cap.state}"/>

     </rich:column>

     <rich:column >

          <f:facet name="header">State Capital</f:facet>

          <h:outputText value="#{cap.name}"/>

     </rich:column>

     <rich:column>

          <f:facet name="header">Time Zone</f:facet>

          <h:outputText value="#{cap.timeZone}"/>

     </rich:column>

</rich:dataTable>

...

 

结果为:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.14  <rich:column>组件

 

现在,为了将文字信息分组为在一个标志列中的一行中,使用"colspan"属性,它与一个HTML的相似,指定首列包含三列。另外,需要利用breakBefore="true"的帮助指定下列从首行开始。例子:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">

     <rich:column colspan="3">

          <h:graphicImage value="#{cap.stateFlag}"/>

     </rich:column>

     <rich:column breakBefore="true">

          <h:outputText value="#{cap.state}"/>

     </rich:column>

     <rich:column >

          <h:outputText value="#{cap.name}"/>

     </rich:column>

     <rich:column>

          <h:outputText value="#{cap.timeZone}"/>

     </rich:column>

</rich:dataTable>

...

 

渲染出下面的结果:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.15  利用 "colspan""breakbefore"属性修改的<rich:column>

 

相同的方法可以用于列分组,只是利用"rowspan" 属性,它与一个HTML的相似,负责当前行占据的行数量的定义。在例子中,唯一要做的事情是一个指令,移动在第二列后每个下一行到下行中。例子:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">

     <rich:column rowspan="3">

          <f:facet name="header">State Flag</f:facet>

          <h:graphicImage value="#{cap.stateFlag}"/>

     </rich:column>

     <rich:column>

          <f:facet name="header">State Info</f:facet>

          <h:outputText value="#{cap.state}"/>

     </rich:column>

     <rich:column breakBefore="true">

          <h:outputText value="#{cap.name}"/>

     </rich:column>

     <rich:column breakBefore="true">

          <h:outputText value="#{cap.timeZone}"/>

     </rich:column>

</rich:dataTable>

...

 

结果为:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.16 <rich:column>,利用了"rowspan"属性。

 

对一个特殊行的标准输出,另外用<h:column>组件提供,因此,可以利用特定的HTML属性轻松地分组行。

 

利用后面章节描述的<h:columnGroup>组件的帮助,列也可以用特殊的方式分组。

 

在动态列维基文章[http://wiki.jboss.org/wiki/DynamicColumns],你可找到有关动态列的基他信息。

 

6.6.1.4    排序和过滤

 

6.6.1.4.1   排序

 

为了排序列,你应该使用"sortBy"属性,它指明什么值被排序。这个属性只能与<rich:dataTable>组件一起使用。在"sortBy"属性中的表达式只能引用"var"属性声明的变量,对那些使用其他属性声明的,比如"rowKeyVar"属性,则不能引用。要排序列,你应该点击它的标题。如下所示:

 

...

<h:form>

    <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">

        <f:facet name="header">

            <h:outputText value="Sorting Example"/>

        </f:facet>

        <rich:column sortBy="#{cap.state}">

            <f:facet name="header">

                <h:outputText value="State Name"/>

            </f:facet>

            <h:outputText value="#{cap.state}"/>

        </rich:column>

        <rich:column sortBy="#{cap.name}">

            <f:facet name="header">

                <h:outputText value="State Capital"/>

            </f:facet>

            <h:outputText value="#{cap.name}"/>

        </rich:column>

    </rich:dataTable>

</h:form>

...

 

结果为:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.17  使用了"sortBy"属性的<rich:column>

 

"sortExpression"属性定义了一个bean属性,它被用来排序列。这个属性只能与<rich:scrollableDataTable>组件一起使用。属性的用法如下所示:

 

...

<rich:scrollableDataTable

        value="#{dataTableScrollerBean.allCars}" sortMode="single"

        var="category">

        <rich:column sortExpression="#{category.make}">

            <f:facet name="header">

                <h:outputText styleClass="headerText" value="Make" />

            </f:facet>

            <h:outputText value="#{category.make}" />

        </rich:column>

        <rich:column>

            <f:facet name="header">

                <h:outputText styleClass="headerText" value="Model" />

            </f:facet>

            <h:outputText value="#{category.model}" />

        </rich:column>

        <rich:column>

            <f:facet name="header">

                <h:outputText styleClass="headerText" value="Price" />

            </f:facet>

            <h:outputText value="#{category.price}" />

        </rich:column>

</rich:scrollableDataTable>

...

 

"selfSorted"属性是用于添加能够通过点击标题自动排序列。默认为"true"。下面的例子,第二列是不能排序的。

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap">

        <rich:column>

                <f:facet name="header">

                        <h:outputText value="State Flag"/>

                </f:facet>

                <h:graphicImage value="#{cap.stateFlag}"/>

        </rich:column>

        <rich:column sortBy="#{cap.state}" selfSorted="false">

                <f:facet name="header">

                        <h:outputText value="State Name"/>

                </f:facet>

                <h:outputText value="#{cap.state}"/>

        </rich:column>

</rich:dataTable>

...

 

"sortOrder"属性被用来改变列的排序顺序,通过外部控制手段。

 

可取的值有:

 

n         "ASCENDING" ——用升序排序列

n         "DESCENDING" ——用升序排序列

n         "UNSORTED" ——不排序列

 

例子:

 

...

<h:form>

    <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">

        <f:facet name="header">

            <h:outputText value="Sorting Example"/>

        </f:facet>

        <rich:column sortBy="#{cap.state}" sortOrder="ASCENDING">

            <f:facet name="header">

                <h:outputText value="State Name"/>

            </f:facet>

            <h:outputText value="#{cap.state}"/>

        </rich:column>

        <rich:column sortBy="#{cap.name}" sortOrder="DESCENDING">

            <f:facet name="header">

                <h:outputText value="State Capital"/>

            </f:facet>

            <h:outputText value="#{cap.name}"/>

        </rich:column>

    </rich:dataTable>

</h:form>

...

 

结果如下:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.18 使用"sortOrder"属性的<rich:column>

 

在上面的例子中,第一列用降序排序。但是如果重复行出现在表中时,相对的第二列用升序排序。

 

如果列值复杂,"sortOrder"属性应该指向一个包含排序顺序的 bean属性。对于<rich:columns>如何实现它,请看LiveDemo [http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?c=columns&tab=usage]

 

使用"rich-sort-icon"类,你也可以定制排序图标元素。

 

[注意,为了排序非英语值的列,你可以在你的web.xml 文件中添加org.richfaces.datatableUsesViewLocale上下文参数。它的值应该为"true"]

 

[注意,"sortBy""selfSorted"属性与<rich:dataTable>组件一起使用。"selfSorted"可以与<rich:extendedDataTable>组件一起使用。

 

"sortable" "sortExpression"<rich:scrollableDataTable>组件一起使用。]

 

6.6.1.4.2   过滤

 

有两种方法过滤列值:

 

n         使用内置过滤。它利用startsWith()函数制造过滤。在这种情况下,你需要在你希望过滤的列定义"filterBy"属性。这个属性定义迭代对象的属性,在过滤处理时使用它。在"filterBy"属性中的表达式只能引用"var"属性声明的变量。对那些使用其他属性声明的,比如"rowKeyVar"属性,则不能引用。

 

"filterValue"属性被用来获得或改变当前过滤的值。在页面上可以使用初始过滤值定义它,或者作为值绑定在服务器上获得或改变它。如果  "filterValue"属性非空,在首次渲染时,从一开始表就会被过滤。

 

你可以使用"rich-filter-input" CSS类定制输入表单。

 

为了改变过滤事件,你可以在列上使用"filterEvent"属性,例如,"onblur"(默认值)。

 

如下所示:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="200px">

        <f:facet name="header">

            <h:outputText value="Sorting Example"/>

        </f:facet>

        <rich:column filterBy="#{cap.state}" filterEvent="onkeyup">

                <f:facet name="header">

                    <h:outputText value="State Name"/>

                </f:facet>

               <h:outputText value="#{cap.state}"/>

        </rich:column>

        <rich:column filterBy="#{cap.name}" filterEvent="onkeyup">

            <f:facet name="header">

                <h:outputText value="State Capital"/>

            </f:facet>

            <h:outputText value="#{cap.name}"/>

        </rich:column>

</rich:dataTable>

...

 

结果:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.19 内置过滤功能的使用。

 

 

n         使用外部过滤。在这种情况下,你需要编写你的定制过滤函数或表达式,以及定义控件。

 

"filterExpression"属性被用来定义求布尔值的表达式。这个表达式检查是否对象满足过滤条件。

 

"filterMethod"属性被用来定义方法绑定。这个方法访问对象参数,并返回布尔值。因此,这个方法也可以用来检查是否对象满足过滤条件。使用这个属性的最好方式,是用于实现你自己的复杂业务逻辑。

 

"filterExpression" "filterMethod"属性使用的简单例子,请看RichFaces  LiveDemo页面: [http://livedemo.exadel.com/richfaces-demo/richfaces/filteringFeature.jsf?tab=ex-usage&cid=4110192]

 

 

6.6.1.5    参数数据

 

<rich:column> 属性表 [../../tlddoc/index.htmlrich/column.html]

 

6.30 组件关联的参数

名字

component-type

org.richfaces.Column

component-class

org.richfaces.component.html.HtmlColumn

component-family

org.richfaces.Column

renderer-type

org.richfaces.renderkit.CellRenderer

tag-class

org.richfaces.taglib.ColumnTag

 

6.31. Facets

Facet名字

描述

header

定义页眉内容

footer

定义页脚内容

 

定制<rich:column>的样式类和皮肤参数,与<rich:dataTable>组件相同。

 

在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。

 

6.6.1.6    关联的资源链接

 

组件的用法和它们的资源的例子,请浏览在RichFaces LivedemoColumn页面:[http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=column]

 

如何使用<rich:column> "rendered"属性,请看RichFaces Cookbook文章[http://www.jboss.org/community/docs/DOC-9607]的例子。

 

6.6.2     < rich:columnGroup >,从3.0.0版开始可用

 

6.6.2.1    描述

 

该组件在一行中合并列,用于组织一个表的复杂子部分。

 

6.6.2.2    主要功能

 

n         完美的皮肤表行和子元素。

n         在内部可以合并列和行。

n         利用Ajax可以更新一组有限的字符串。

 

6.6.2.3    使用细节

 

<rich:columnGroup>组件合并列集合,包裹它们到<tr>元素,并输出它们到一行。列合并为一组,与在对列使用"breakBefore" 属性移动到下行时的方式相同。因此,以下例子是一样的:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">

        <rich:column colspan="3">

                <f:facet name="header">State Flag</f:facet>

                <h:graphicImage value="#{cap.stateFlag}"/>

        </rich:column>

       <rich:columnGroup>

                <rich:column>

                    <h:outputText value="#{cap.state}"/>

                </rich:column>

               <rich:column >

                    <h:outputText value="#{cap.name}"/>

               </rich:column>

               <rich:column >

                    <h:outputText value="#{cap.timeZone}"/>

               </rich:column>

        </rich:columnGroup>

</rich:dataTable>

...

 

下面是一个没有分组的表示:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">

        <rich:column colspan="3">

                <f:facet name="header">State Flag</f:facet>

                <h:graphicImage value="#{cap.stateFlag}"/>

        </rich:column>

        <rich:column breakBefore="true">

                <h:outputText value="#{cap.state}"/>

        </rich:column>

        <rich:column>

                <h:outputText value="#{cap.name}"/>

        </rich:column>

        <rich:column>

                <h:outputText value="#{cap.timeZone}"/>

        </rich:column>

</rich:dataTable>

....

 

结果:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.21  使用<rich:columnGroup>组件生成的表

 

也可以使用该组件在一个表中输出复杂的标题。例如,以下是一个添加复杂标题到整个表的一个facet例子:

 

...

<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">

        <f:facet name="header">

            <rich:columnGroup>

                <rich:column rowspan="2">

                    <h:outputText value="State Flag"/>

                </rich:column>

                <rich:column colspan="3">

                    <h:outputText value="State Info"/>

                </rich:column>

                <rich:column breakBefore="true">

                    <h:outputText value="State Name"/>

                </rich:column>

                <rich:column>

                    <h:outputText value="State Capital"/>

                </rich:column>

                <rich:column>

                    <h:outputText value="Time Zone"/>

                </rich:column>

            </rich:columnGroup>

        </f:facet>

        <rich:column>

                <h:graphicImage value="#{cap.stateFlag}"/>

        </rich:column>

        <rich:column>

                <h:outputText value="#{cap.state}"/>

        </rich:column>

        <rich:column>

                <h:outputText value="#{cap.name}"/>

        </rich:column>

        <rich:column>

                <h:outputText value="#{cap.timeZone}"/>

        </rich:column>

</rich:dataTable>

...

 

在页面上生成的表如下所示:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.22  使用复杂标题的<rich:columnGroup>

 

6.6.2.4    参数数据

 

<rich:columnGroup>表属性[../../tlddoc/index.htmlrich/columnGroup.html]

 

6.32 组件关联的参数

名字

component-type

org.richfaces.ColumnGroup

component-class

org.richfaces.component.html.HtmlColumnGroup

component-family

org.richfaces.ColumnGroup

renderer-type

org.richfaces.ColumnGroupRenderer

tag-class

org.richfaces.taglib.ColumnGroupTag

 

定制<rich:columnGroup>的样式类和皮肤参数,与<rich:dataTable>组件相同。

 

在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。

 

6.6.2.5    相关联的资源链接

 

组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo<rich:columnGroup>页面:

[http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columnGroup]

 

6.6.3     < rich:columns >,从3.0.0版开始可用

 

6.6.3.1    描述

 

<rich:columns>组件,允许你根据你的模型创建动态列集。

 

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 图6.23  <rich:columns>组件

 

6.6.3.2    主要功能

 

n       高度定制感观

n       动态表创建

n       可以利用"colspan""breakBefore"的帮助合并列

n       可以利用 "rowspan"的帮助合并行

n       排序列值

n       过滤列值

 

6.6.3.3    使用细节

 

<rich:columns>组件从数据模型获取一个列表,并输出到在页面上的<rich:dataTable>内部的相应的列集。可以与<rich:columns>组件一起使用  "header" "footer"  facets

 

 "value""var"属性用来访问集合的值。 

 

下面是一个简单的例子:

 

...

<rich:dataTable value="#{dataTableScrollerBean.model}" var="model" width="750">

            <rich:columns value="#{dataTableScrollerBean.columns}" var="columns"  index="ind" id="column#{ind}">

                <f:facet name="header">

                    <h:outputText value="#{columns.header}" />

                </f:facet>

           

                <h:outputText value="#{model[ind].model} " />

                <h:outputText value="#{model[ind].mileage} miles " />

                <h:outputText value="#{model[ind].price}$" />      

            </rich:columns>

</rich:dataTable>                      

...

 

"columns"属性定义列数。

 

"rowspan"属性定义被显示的行数。如果这个属性的值为0,在表中所有剩余的行被显示在页面上。

 

"begin"属性包含第一个迭代项。注意,它从0开始迭代。

 

"end"属性包含最后一个迭代项。

 

利用上面描述的这些属性的帮助,你可以定制输出,例如,定义那个列和多少行显示在页面上。

 

<rich:columns>组件并不阻碍使用<rich:column>。下面的例子,一个列用任何方式渲染,而另一个从模型中选取。

 

例子:

 

...

<rich:dataTable value="#{dataTableScrollerBean.model}" var="model" width="500px" rows="5">

        <f:facet name="header">

                <h:outputText value="Cars Available"></h:outputText>

        </f:facet>

        <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">

                <f:facet name="header">

                        <h:outputText value="#{columns.header}" />

                </f:facet>

                <h:outputText value="#{model[ind].model} " />

        </rich:columns>

        <rich:column>

                <f:facet name="header">

                        <h:outputText value="Price" />

                </f:facet>

               <h:outputText value="Price" />

        </rich:column>

        <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">

                <f:facet name="header">

                        <h:outputText value="#{columns.header}" />

                </f:facet>

                <h:outputText value="#{model[ind].mileage}$" />

        </rich:columns>

</rich:dataTable>

...                             

                  

<rich:columns>,可以利用"colspan""rowspan""breakBefore"属性的帮助,分组列为一列或一行,就象<rich:columnt> 组件执行的方法一样。

 

[注意,<rich:columns>标签在组件树构建处理期间被初始化。这个处理在“渲染响应”JSF阶段的页面渲染之前。要完全地渲染组件,需要在组件树构建时,初始化它所有的变量。如果<rich:columns> 使用的变量从其他组件传入,如果这些变量在渲染期间被初始化,一个javax.servlet.jsp.JspTagException异常发生。因此,当<rich:columns>请求这些变量时,他们并不存在。使用<c:forEach> JSP标准标签作为替代。比较下面两个例子。

 

这个代码调用异常:

 

...

<rich:dataTable value="#{bean.data}" var="var">

        <rich:columns value="#{var.columns}">

                ...

        </rich:columns>

</rich:dataTable>

...

 

这个代码正常运行:

 

...

<c:forEach items="#{bean.data}" var="var">

        <rich:columns value="#{var.columns}">

                ...

        </rich:columns>

</c:forEach>

...

]

 

[注意,从3.3.0GA开始,<rich:columns>]需要显式定义子组件的"id",以确保解码处理正常运行。你如何为子组件定义唯一"id",如下所示:

 

...

<rich:columns value="#{bean.columns}" var="col" index="ind" ... >

        <h:inputText id="input#{ind}" value="">

                <a4j:support id="support#{ind}" event="onchange" reRender="someId" />

        </h:inputText>

</rich:columns>

...

 

只有如上面的Ajax所示定义"id",在onchange事件之后,才会象你希望的一样被处理。]

 

<rich:columns>组件的排序和过滤,与 <rich:column>运行的相同。请看“排序和过滤”一节。

 

6.6.3.4    参数数据

 

<rich:columns> 属性表 [../../tlddoc/index.htmlrich/columns.html]

 

6.33 组件关联的参数

名字

component-type

org.richfaces.Column

tag-class

org.richfaces.taglib.ColumnsTagHandler

 

6.34. Facets

Facet名字

描述

header

定义页眉内容

footer

定义页脚内容

 

定制<rich:columns>的样式类和皮肤参数,与<rich:dataTable>组件相同。

 

在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。

 

6.6.3.5    相关联的资源链接

 

有关<rich:columns>组件用法的其他信息,你可以查看组件LiveDemo页面:

[http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columns]

 

6.6.4     < rich:dataDefinitionList >,从3.0.0版开始可用

 

6.6.4.1    描述

 

该组件用于渲染定义列表,它允许从数据模型选择数据,并且获得了内置Ajax更新支持。

 

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

6.24   <rich:dataDefinitionList>组件

 

6.6.4.2    主要功能

 

l         完美的皮肤表行和子元素

l         可以利用Ajax更新一组有限的行

l         可以从模型动态地接受值

 

6.6.4.3    使用细节

 

<rich:dataDefinitionList>组件允许根据模型生成定义列表。

 

该组件具有"term"  facet,它相应于<dt> HTML元素的"type"参数。

 

下面是一个例子:

 

...

<h:form>

     

  <rich:dataDefinitionList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" first="4" title="Cars">

                <f:facet name="term">

                    <h:outputText value="#{car.make} #{car.model}"></h:outputText>

                </f:facet>

                <h:outputText value="Price:" styleClass="label"></h:outputText>

                <h:outputText value="#{car.price}" /><br/>

                <h:outputText value="Mileage:" styleClass="label"></h:outputText>

                <h:outputText value="#{car.mileage}" /><br/>

        </rich:dataDefinitionList>

</h:form>

...

 

结果为:

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.25 使用了"term"  facet<rich:dataDefinitionList>组件

 

在上面例子中,"rows"属性限定了列表输出元素的数量。

 

"first"属性定义输出的第一个元素。"title"用于一个弹出标题。

 

可以利用Ajax局部更新<rich:dataDefinitionList>组件。"ajaxKeys"属性指向一个对象(java.util.Set)),它应该包含在Ajax请求之后被更新的行键。<rich:dataList>组件的"ajaxKeys"属性的使用例子,看RichFacs Cookbook文章 [http://www.jboss.org/community/wiki/UsingtheajaxKeysattributeforrichdataList]

 

6.6.4.4    参数数据

 

<rich:dataDefinitionList>属性表[../tlddoc/index.htmlrich/dataDefinitionList.html]

 

6.35 组件关联的参数

名字

component-type

org.richfaces.DataDefinitionList

component-class

org.richfaces.component.html.HtmlDataDefinitionList

component-family

org.richfaces.DataDefinitionList

renderer-type

org.richfaces.DataDefinitionListRenderer

tag-class

org.richfaces.taglib.DataDefinitionListTag

 

6.36 无皮肤参数的样式类(selectors

类名

描述

 

 

.rich-deflist定义html

<dl>

元素的样式

 

.rich-definition定义

html

<dd>

元素的样式

.rich-definition-term定义html

<dt>元素的样式

 

 

 

在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。

 

6.6.4.5    相关联的资源链接

 

组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo<rich:dataDefinitionList>页面:[http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataDefinitionList]

 

6.6.5     < rich:dataFilterSlider >,从3.0.0版开始可用

 

6.6.5.1    描述

 

一个基于滑块动作的组件,用于过滤表数据。

RichFaces Developer Guide 3.3.3(6-6) - *工* - 要有光,于是就有了光

 

6.26  <rich:dataFilterSlider>组件

 

6.6.5.2    主要功能

 

n         依赖于它的子女的值过滤任何基于UIData的组件。

n         完全可换肤的控件和输入元素。

n         可选的,带有一个管理的属性位置的值文本字段。

n         可选的,在一个页面上废弃的组件。

n         可选的,只要拖动句柄就显示当前值的工具提示。

n         鼠标移动后,拖动的状态是稳定的。

n         可选的,如果文本输入字段出现,可以手工输入。

n         手工输入验证。

 

6.6.5.3    使用细节

 

dataFilterSlider组件使用"for"属性绑定到某些UIData组件,并过滤在一个表中的数据。

 

例子:

 

...

<rich:dataFilterSlider sliderListener="#{mybean.doSlide}"

                        startRange="0"

                        endRange="50000"

                        increment="10000"

                        handleValue="1"

                        for="carIndex"

                        forValRef="inventoryList.carInventory"

                        filterBy="getMileage" />

...

<h:dataTable id="carIndex">

        ...

</h:dataTable>

...

 

在上面的例子中,不同的两个属性用于过滤:

 

n         "forValRef" 是一个字符串,它被用于目标UIData组件的一个值属性。旨在重新设置UIData组件支持由后台bean提供的原始列表。

 

n         "filterBy" 是一个对象成员的getter,用于与滑块值的比较。它的值用于结果过滤。

 

"handleValue"属性,用于保存在dataFilterSlider上当前的句柄的位置。根据当前的值,适当的值,根据"filterBy"定义的getter获得的,被过滤。

 

一个更重要的属性是"storeResults",它准许dataFilterSlider组件在会话中保存UIData目标对象。

 

如果组件需要根据句柄状态改变的事件提交表单,使用"submitOnSlide"属性。当属性定义为"true",根据事件提交被定义。

 

有关"process"属性的用法的信息,请查看“决定处理什么”指南一节。

 

6.6.5.4    参数数据

 

<rich:dataFilterSlider>属性表 [../../tlddoc/index.htmlrich/dataFilterSlider.html]

 

6.37 组件关联的参数

名字

component-type

org.richfaces.DataFilterSlider

component-class

org.richfaces.component.html.HtmlDataFilterSlider

component-family

org.richfaces.DataFilterSlider

renderer-type

org.richfaces.DataFilterSliderRenderer

tag-class

org.richfaces.taglib.dataFilterSliderTag

 

6.38 使用相应皮肤参数的样式类(selectors

类名(selectors)

描述

皮肤参数

CSS属性映射

.range, .rich-dataFilterSlider-range

定义组件范围的样式

subBorderColor, panelBorderColor

border-color

.slider-input-field, .rich-dataFilterSlider-input-field

定义组件输入字段的样式

controlBackgroundColor

background-color

generalFamilyFont

font-family

generalSizeFont

font-size

controlTextColor

color

panelBorderColor

border-color

subBorderColor

border-bottom-color,    border-right-color

 

6.39 无皮肤参数的样式类(selectors

类名

描述

.trailer, .rich-dataFilterSlider-trailer

定义组件尾部(trailer)的样式

.track, .rich-dataFilterSlider-track

定义组件轨迹(track)的样式

 

在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。

 

6.6.5.5    相关联的资源链接

 

组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo<rich:dataFilterSlider>页面:

[http://livedemo.exadel.com/richfaces-demo/richfaces/dataFilterSlider.jsf?c=dataFilterSlider]




------------------------------------------------

http://lalalabs.blog.163.com/blog/static/94325202201052101621915/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值