首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

NC表头改变时封存表体的选中状态

2012-11-07 
NC表头改变时保留表体的选中状态当UI处于多选状态时,表体行的选中状态不会保存下来。表头的选中行改变时,表

NC表头改变时保留表体的选中状态

当UI处于多选状态时,表体行的选中状态不会保存下来。表头的选中行改变时,表体行将重新处于非选中状态。

?

以下为保留选中状态的表体行的UI代码

?

@Overrideprotected void initSelfData() {getBillListPanel().setMultiSelect(true);getBillListPanel().getHeadBillModel().removeRowStateChangeEventListener();getBillListPanel().getHeadBillModel().addRowStateChangeEventListener(new HeadRowStateListener());}private class HeadRowStateListener implements IBillModelRowStateChangeEventListener{public void valueChanged(RowStateChangeEvent e){getBufferData().setCurrentRow(e.getRow());BillModel model = getBillListPanel().getBodyBillModel();IBillModelRowStateChangeEventListener l = model.getRowStateChangeEventListener();model.removeRowStateChangeEventListener();if (e.isSelectState()) {getBillListPanel().getChildListPanel().selectAllTableRow();}else{getBillListPanel().getChildListPanel().cancelSelectAllTableRow();}model.addRowStateChangeEventListener(l);getBillListPanel().updateUI();}}@Overridepublic void update(Observable o, Object arg) {// TODO Auto-generated method stubif (beforeUpdate()) {try {if (isListPanelSelected()){setListBodyData();int nrow=getBufferData().getCurrentRow();if (!getBillListPanel().setBodyModelData(nrow)){getBillListPanel().setBodyModelDataCopy(nrow);}//getBillListPanel().repaint();int maxSelIndex=getBillListPanel().getHeadTable().getSelectionModel().getMaxSelectionIndex();int minSelIndex=getBillListPanel().getHeadTable().getSelectionModel().getMinSelectionIndex();if(nrow>=0&&maxSelIndex==minSelIndex){getBillListPanel().addEditListener(null);getBillListPanel().getHeadTable().getSelectionModel().setSelectionInterval(nrow,nrow);getBillListPanel().addEditListener(this);}}elsesetCardUIData(getBufferData().getCurrentVO());this.getBillCardPanel().updateValue();//设置单据状态updateBtnStateByCurrentVO();} catch (Exception e) {e.printStackTrace();showErrorMessage(e.getMessage());}if(getUIControl() instanceof ITableTreeController){    setTableToTreeTable();}}afterUpdate();}

?

?

?

主要是重新定义表头的行选中事件以及修改update方法

热点排行