2013-12-15 2 views
1

Я хочу сделать colspan на дисплее: колонки, так что я попытался сделать это следующим образом:Как сделать Colspan с дисплеем: колонки

<display:column style="width=50% colspan=2 " title="${textResources['Exam.endDate']}"> 

, но он не работает, кажется, что это свойство не разрешено на дисплее: столбец, так как это сделать?

+0

Вы используете displayTag ?? –

ответ

1

Чтобы добавить colspan в столбец дисплея, вы должны создать Table Decorator, который расширяет класс TableDecorator, переопределяя метод init, в этом методе вам нужно получить заголовок для вашей ячейки и добавить атрибут colspan.

package org.hannibal.utils.view.decorators;  
import java.util.List; 

import javax.servlet.jsp.PageContext; 

import org.displaytag.decorator.TableDecorator; 
import org.displaytag.model.HeaderCell; 
import org.displaytag.model.TableModel; 
import org.displaytag.util.HtmlAttributeMap; 

public class ColspanTableDecorator extends TableDecorator { 

    @Override 
    public void init(PageContext pageContext, Object decorated, 
      TableModel tableModel) { 
     super.init(pageContext, decorated, tableModel); 
     List headersList = tableModel.getHeaderCellList(); 
     HeaderCell myHeader = (HeaderCell)headersList.get(0); 
     HtmlAttributeMap map = myHeader.getHeaderAttributes(); 
     map.put("colSpan", "2");    
    } 
} 

И в jsp я использую его так.

<display:table name="sessionScope.employees" pagesize="10" cellpadding="2" cellspacing="0" 
     decorator="org.hannibal.utils.view.decorators.ColspanTableDecorator"> 

Я надеюсь, что это поможет вам

+0

Что такое myHeader, дайте более подробный ответ –

+0

Я редактирую свой ответ, чтобы показать точно код, Попробуйте, он работает. –

+0

для моего случая я добавлю атрибут декоратора к дисплею: ​​столбец не к dipslay: table –