我有一个cellTable
,具有许多列,例如以下内容:
OrderID-订购日期 - 订购时间 - 名称.....1-2012-01-05-11:12:12-汤姆......
每列将有一个用于hide/undide列的复选框:
[x] OrderID(复选框)[x]订购(复选框)[x]订单时间(复选框)......
要求:我希望当用户取消选中复选框时,相应的列将消失&当他们选中复选框时,该列将以正确的顺序出现在开始时。这是代码:
public void insertColumn(int beforeIndex, TextColumn<String[]> textColumn, String columnName){
if(getView().getOrderListCellTable().getColumnIndex(textColumn)==-1){
getView().getOrderListCellTable().insertColumn(beforeIndex,textColumn, columnName);
textColumn.setSortable(true);
}
}
public void removeColumn(TextColumn<String[]> textColumn){
int index= getView().getOrderListCellTable().getColumnIndex(textColumn);
if(index!=-1){
getView().getOrderListCellTable().removeColumn(index);
}
}
但是,我得到了这个问题,当我隐藏/不打开1列时,订单还可以,ex,隐藏订购列,则表将是这样的:
订购 - 订单时间 - 名称.....1-11:12:12-汤姆......
和当然,当订购日期不足时,它将正确回到开始。
代码插入/删除OrderDate
getView().getOrderDateCheckBox().addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
if(getView().getOrderDateCheckBox().getValue()){
insertColumn(1, orderDateColumn,"Order Date");
}
else{
removeColumn(orderDateColumn);
}
}
});
但是,如果我隐藏了有序的&amp;订购日期&amp;然后UND订购日期,然后就是这样:
订购时间 - 订购日期 - 名称.....11:12:12-2012-01-05-汤姆......
这是不对的,因为他的订单应在订购时间之前站立。这个cos i insertColumn(1, orderDateColumn,"Order Date");
位于位置1(索引之前)。
您可以找出解决此问题的逻辑吗?
- 创建列。
- 为每列分配一个订单号:0、1、2等。
- 在插入订单号x的列时,查找第一个列的订单号高于x,该列中存在于表中。在它之前插入此列。