2

改札口の問題で本当に助かります。

PropertyColumn のすべての行に (マウス ホバーで) ツールチップを追加したいと考えています。しかし、どうすればそれができますか?Abstractcolumn を使用したソリューションを見てきました。しかし、propertyExpression が必要で、sortProperty は必要ないため、PropertyColumn を使用する必要があります。

4

2 に答える 2

3

DataTable1 つの方法は、次のように変更することです。

add(new DefaultDataTable("wicektid", null, null, 10) {

    @Override
    protected Item newCellItem(String id, int index, IModel model) {
        Item item = super.newCellItem(id, index, model); 
        item.add(AttributeModifier.replace("title", "Your Title"));
        return item;
    }

    @Override
    protected Item newRowItem(String id, int index, IModel model) {
        Item item = super.newRowItem(id, index, model); 
        item.add(AttributeModifier.replace("title", "Your Title"));
        return item;
    }

});

行全体または個々のセルにツールチップが必要な場合は、ここにコントロールがあります。

特定の列でそれを行いたい場合はpopulateItem、次のように列でオーバーライドできます。

add(new PropertyColumn<>(){

    @Override
    public void populateItem(Item<ICellPopulator<T>> item, String componentId, IModel<T> rowModel) {
        super.populateItem(item, componentId, rowModel); 
    }

});
于 2013-08-14T19:26:54.330 に答える
2

私は今、解決策を見つけました。

まず知っておくべき重要なことは、populateItem-Method には少なくとも 1 つのオブジェクトが含まれている必要があるということです。たとえば、ラベル。文字列やツールチップをセルに追加できないためです。そのため、ラベルを付けて、そのラベルに文字列を追加する必要がありました。その後、ラベルに PrototipBehavior を追加しました。

 public void populateItem(final Item cellItem, final String componentId, final IModel model) {
                Long id = ((MyObject) model.getObject()).getId();
                String desc = ((MyObject) model.getObject()).getDescription();
                Label l = new Label(componentId, id + "");
                l.add(new PrototipBehaviour(desc));
                cellItem.add(l);

            }
于 2013-09-06T12:29:31.263 に答える