如何自定义Apache wicket HeadersToolbar的样式表?

时间:2013-09-26 10:46:13

标签: wicket

我在渲染表头时遇到问题。在表格上没有显示任何颜色。 我在HeadersToolbar中使用了我的数据,如下所示。

import org.apache.wicket.Component; 
import org.apache.wicket.behavior.AttributeAppender; 
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;

 import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;

 import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.OddEvenItem;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;

 public class CustomTable extends DataTable {   

    private static final long serialVersionUID = 5912216230302446976L;

    public CustomTable(String id, List columns,
            ISortableDataProvider dataProvider, int rowsPerPage) {
        this(id, (IColumn[]) columns.toArray(new IColumn[columns.size()]),
                dataProvider, rowsPerPage);
    }

    public CustomTable(String id, IColumn[] columns,
            ISortableDataProvider dataProvider, int rowsPerPage) {
        super(id, columns, dataProvider, rowsPerPage);
        // super(id, columns, dataProvider, rowsPerPage);

        addTopToolbar(new NavigationToolbar(this));
            addTopToolbar(new HeadersToolbar(this, dataProvider));

    }

    protected Item newRowItem(String id, int index, IModel model) {
        return new OddEvenItem(id, index, model);
    }
}

我详细看到了HeaderToolbar会生成CSS类“headers”。然后我在View Source中看到了。我有名称“标题”的css类。

如何自定义HeaderToolbar以正确获取表行标题显示颜色或者我可以创建新的Css类吗?

任何人都可以帮我解决这个问题吗? :)

1 个答案:

答案 0 :(得分:0)

我不明白你的目标。您是否希望动态更改表头的颜色,或者您只是想静态设置标题的颜色?

如果静态设置颜色,您只需使用css th.header {background-color: #7FFF00;}来表示html:<th class="header">...</th>

如果你想要它动态设置我已经成功将该课程从html&amp;满足条件时用wicket注入它:

if(...) {
    header.add(new AttributeModifier("class", "header")`;
}

通过更多信息,我可以提供更完整的答案。如果您还有其他问题,请与我们联系。