0

您好,我正在使用 Primefaces 数据表来显示一些数据,并且我正在遵循下面代码中显示的机制来显示行索引的数字。(它也可以正常工作)。我的问题是:

有什么办法,我可以将英文字母显示为如下的行索引?我不想将字母放在 bean 的数组中并在每一行渲染时获取它们。!

<p:dataTable id="resultTable" var="car" value="#{myBean.carList}" rowIndexVar="rowNum">

<p:column headerText="No.">
#{rowNum+1}
</p:column>

<p:column headerText="Name" >
#{car.name}
</p:column>

</p:dataTable>

编辑 感谢您的所有回答。我发现 BalusC(不幸的是他删除了答案)和 JavaKid 的答案很容易,然后放 Javascript。但是这些答案中存在一些问题,所以我改变了,这就是答案。如果你把 #{65+(rowNum+1)}; 在 HTML 中它会抛出错误,说十进制表示必须立即跟随“&#” 所以我改变了一点,现在它可以工作了。

回答

<h:outputText value="&amp;&#35;#{64+(rowNum+1)};" escape="false"/>

感谢每个人的回答。

4

3 回答 3

2

您可以使用 Ascii 字符。例如A - A 和B - B .....
同样你可以使用 #{64+(rowNum+1)} ;

于 2013-05-09T11:45:10.270 回答
2

您可以在javascript中使用数组来映射索引和anphabets:

                <script type="text/javascript">                
                    var alphabets = new Array();
                    alphabets[0] = "A";
                    alphabets[1] = "B";
                    alphabets[2] = "C";
                    // you can declare as: var alphabets =new Array("A","B","C","D");
                    //...
                </script>
               <p:dataTable id="resultTable" var="car" value="#{myBean.carList}" rowIndexVar="rowNum">        
                    <p:column headerText="No.">
                        <script type="text/javascript">
                            document.write(alphabets[#{rowNum}]);
                        </script>
                    </p:column>
                   <p:column headerText="Name" >
                     #{car.name}
                   </p:column>        
               </p:dataTable>
于 2013-05-02T08:57:15.147 回答
2

或者,如果您的环境支持 EL 2.2,您可以使用参数调用方法。我们知道'A'的Unicode表示是'41'(或'a'是'61'),我们可以使用Character.toChars(int codePoint)实用方法来执行转换:

Character.toChars(rowNumber + 41)[0]; //for capital letters

所以,在数字列中只需使用

<h:outputText value="#{bean.calculateRowIndexChar(rowNum)}"/>

用豆法

public char calculateRowIndexChar(int rowNumber) {
    return Character.toChars((rowNumber % 26) + 41)[0];
}

如果您的环境不支持 EL 2.2,您可以改为创建自定义 EL 函数,如 BalusC 在如何创建自定义 EL 函数?.

于 2013-05-02T10:41:47.883 回答