datatable动态添加列应当如何来实现

 我来答
安东尼35
推荐于2016-07-31 · 超过60用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:111万
展开全部
首先了解一下JSF中DataTable的渲染方式:DataTable--<Header UIComponent
--<ChildrenList<HtmlColumn
----<HtmlColumn
------<HeaderUIComponent
----<ChildrenList<UIComponent
因此,要在后台变更DataTable的状态,可以用dt.setHeader(UIComponent)设置DataTable的表头,然后可以往dt.getChildren()中添加HtmlColumn类型的列,同样,列中也可以由Header和Children组成。
代码实现如下:
private void initialReportTable(List<ExcelReport reportList) {
dt.getChildren().clear();
for (ExcelReport report : reportList) {
HtmlColumn column = new HtmlColumn();
HtmlOutputText header = new HtmlOutputText();
header.setValueExpression("value",
getValueExpression("#{rmaReport.captions.c"
+ report.getPosition() + "}"));
column.setHeader(header);
HtmlOutputText value = new HtmlOutputText();
String ve = getVEString(report);
System.out.println(report.getCaption() + " : " + ve);
value.setValueExpression("value", getValueExpression(ve));
column.getChildren().add(value);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式