java – 如何根据gxt中可编辑网格中的另一个单元格值使单元格不
发布时间:2020-12-15 04:18:51 所属栏目:Java 来源:网络整理
导读:嗨,我正在使用GXT 2.2.3创建可编辑网格.我创建了如下列: ListString eventList=new ArrayListString(); eventList.add("Mark/Modify Attendance"); eventList.add("Remove Attendance"); eventList.add("Modify Roster"); eventList.add("Mark OD"); eventL
嗨,我正在使用GXT 2.2.3创建可编辑网格.我创建了如下列:
List<String> eventList=new ArrayList<String>(); eventList.add("Mark/Modify Attendance"); eventList.add("Remove Attendance"); eventList.add("Modify Roster"); eventList.add("Mark OD"); eventList.add("Forgot To Checkin"); eventcombo = new SimpleComboBox<String>(); eventcombo.setEmptyText(""); eventcombo.setTriggerAction(TriggerAction.ALL); // EventCombo.setSelection(eventList); CellEditor eventComboEditor = new CellEditor(eventcombo) { public Object preProcessValue(Object value) { if (value == null) { return value; } return eventcombo.findModel(value.toString()); } public Object postProcessValue(Object value) { if (value == null) { return value; } return ((ModelData) value).get("value"); } }; eventcombo.setForceSelection(true); eventcombo.setEmptyText(""); eventcombo.setTriggerAction(TriggerAction.ALL); eventcombo.add(eventList); ColumnConfig eventcolumn = new ColumnConfig(); eventcolumn.setId("event"); eventcolumn.setHeader("Event"); eventcolumn.setWidth(145); eventcolumn.setMenuDisabled(true); eventcolumn.setSortable(false); /* */ // column.setEditor(new); eventcolumn.setEditor(eventComboEditor); configs.add(eventcolumn); //rosterInOut-10 ColumnConfig rosterInOutcolumn = new ColumnConfig(); rosterInOutcolumn.setId("rosterInOut"); rosterInOutcolumn.setHeader("Old Roster"); rosterInOutcolumn.setWidth(70); rosterInOutcolumn.setMenuDisabled(true); rosterInOutcolumn.setSortable(false); configs.add(rosterInOutcolumn); Rostercombo = new SimpleComboBox<String>(); CellEditor editor1 = new CellEditor(Rostercombo) { public Object preProcessValue(Object value) { if (value == null) { return value; } return Rostercombo.findModel(value.toString()); } public Object postProcessValue(Object value) { if (value == null) { return value; } return ((ModelData) value).get("value"); } }; Rostercombo.setForceSelection(true); Rostercombo.setTriggerAction(TriggerAction.ALL); Rostercombo.add("OD"); Rostercombo.add("O"); //newRosterin-11 ColumnConfig newRosterincolumn = new ColumnConfig(); newRosterincolumn.setId("newRosterin"); newRosterincolumn.setHeader("New Roster In"); newRosterincolumn.setWidth(80); newRosterincolumn.setEditor(editor1); newRosterincolumn.setMenuDisabled(true); newRosterincolumn.setSortable(false); configs.add(newRosterincolumn); //checkinout-12 ColumnConfig checkinoutcolumn = new ColumnConfig(); checkinoutcolumn.setId("checkinout"); checkinoutcolumn.setHeader("Check In-Out"); checkinoutcolumn.setWidth(80); checkinoutcolumn.setMenuDisabled(true); checkinoutcolumn.setSortable(false); configs.add(checkinoutcolumn); //checkinDate-13 ColumnConfig checkinDatecolumn = new ColumnConfig(); checkinDatecolumn.setId("checkinDate"); checkinDatecolumn.setHeader("Check In Date"); checkinDatecolumn.setWidth(85); checkinDatecolumn.setMenuDisabled(true); checkinDatecolumn.setSortable(false); final DateField dateField1 = new DateField(); dateField1.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MMM/yyyy")); dateField1.getDatePicker().addListener(Events.Select,new Listener<DatePickerEvent>() { @Override public void handleEvent(DatePickerEvent dpe) { // Window.alert("Getting Roster Date here-->"+grid.getColumnModel().); Window.alert("Getting RosterDate--."+ caseStoreModule.getModifiedRecords().get(0).get("rosterDate")); } }); checkinDatecolumn.setEditor(new CellEditor(dateField1)); checkinDatecolumn.setDateTimeFormat(DateTimeFormat.getFormat("dd/MMM/yyyy")); configs.add(checkinDatecolumn); //checkinTime-14 ColumnConfig checkinTimecolumn=new ColumnConfig(); checkinTimecolumn.setId("checkinTime"); checkinTimecolumn.setHeader("Check In Time"); checkinTimecolumn.setWidth(80); checkinTimecolumn.setMenuDisabled(true); checkinTimecolumn.setSortable(false); final TextField<String> checkintime = new TextField<String>(); checkintime.setAllowBlank(true); checkintime.addListener(Events.Change,new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { // Window.alert("getting the checkin time value-->"+checkintime.getValue()); String variable = checkintime.getRawValue(); if(variable != null & !variable.equalsIgnoreCase("")) { if(!variable.matches(REG_EXP)) { checkintime.clear(); MsgBox.info("Enter time in hh:mm format"); checkintime.focus(); return; } } } }); checkinTimecolumn.setEditor(new CellEditor(checkintime)); configs.add(checkinTimecolumn); //checkoutDate-15 ColumnConfig checkoutDatecolumn=new ColumnConfig(); checkoutDatecolumn.setId("checkoutDate"); checkoutDatecolumn.setHeader("Check Out Date"); checkoutDatecolumn.setWidth(90); checkoutDatecolumn.setMenuDisabled(true); checkoutDatecolumn.setSortable(false); DateField dateField2 = new DateField(); dateField2.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MMM/yyyy")); checkoutDatecolumn.setEditor(new CellEditor(dateField2)); checkoutDatecolumn.setDateTimeFormat(DateTimeFormat.getFormat("dd/MMM/yyyy")); configs.add(checkoutDatecolumn); //checkoutTime-15 ColumnConfig checkoutTimecolumn=new ColumnConfig(); checkoutTimecolumn.setId("checkoutTime"); checkoutTimecolumn.setHeader("Check Out Time"); checkoutTimecolumn.setWidth(90); checkoutTimecolumn.setMenuDisabled(true); checkoutTimecolumn.setSortable(false); final TextField<String> checkouttime = new TextField<String>(); checkouttime.setAllowBlank(true); checkouttime.addListener(Events.Change,new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { // Window.alert("getting the checkouttime value-->"+checkouttime.getValue()); String variable = checkouttime.getRawValue(); if(variable != null & !variable.equalsIgnoreCase("")) { if(!variable.matches(REG_EXP)) { checkouttime.clear(); MsgBox.info("Enter time in hh:mm format"); checkouttime.focus(); return; } } } }); checkoutTimecolumn.setEditor(new CellEditor(checkouttime)); configs.add(checkoutTimecolumn); //for gradeCode-16 ColumnConfig gradeCodecolumn=new ColumnConfig(); gradeCodecolumn.setId("gradeCode"); gradeCodecolumn.setHidden(true); configs.add(gradeCodecolumn); //for rosterevent-17 ColumnConfig rostereventcolumn=new ColumnConfig(); rostereventcolumn.setId("rosterevent"); rostereventcolumn.setHidden(true); configs.add(rostereventcolumn); //for action-18 ColumnConfig actioncolumn=new ColumnConfig(); actioncolumn.setId("action"); actioncolumn.setHeader("Action"); //column.setHidden(true); actioncolumn.setWidth(70); actioncolumn.setMenuDisabled(true); actioncolumn.setSortable(false); configs.add(actioncolumn); //for actionHidden-19 ColumnConfig actionHiddencolumn=new ColumnConfig(); actionHiddencolumn.setId("actionHidden"); actionHiddencolumn.setHidden(true); configs.add(actionHiddencolumn); //for attendId-20 ColumnConfig attendIdcolumn=new ColumnConfig(); attendIdcolumn.setId("attendId"); attendIdcolumn.setHidden(true); configs.add(attendIdcolumn); //for rosterChanged-21 ColumnConfig rosterChangedcolumn=new ColumnConfig(); rosterChangedcolumn.setId("rosterChanged"); rosterChangedcolumn.setHidden(true); configs.add(rosterChangedcolumn); // for holiday-22 ColumnConfig holidaycolumn=new ColumnConfig(); holidaycolumn.setId("holiday"); holidaycolumn.setHidden(true); configs.add(holidaycolumn); // for checkinDateTimeHidden-23 column=new ColumnConfig(); column.setId("checkinDateTimeHidden"); column.setHidden(true); configs.add(column); // for checkoutDateTimeHidden-24 ColumnConfig checkoutDateTimeHiddencolumn=new ColumnConfig(); checkoutDateTimeHiddencolumn.setId("checkoutDateTimeHidden"); checkoutDateTimeHiddencolumn.setHidden(true); configs.add(checkoutDateTimeHiddencolumn); // for loginEmpEntity-25 ColumnConfig loginEmpEntitycolumn=new ColumnConfig(); loginEmpEntitycolumn.setId("loginEmpEntity"); loginEmpEntitycolumn.setHidden(true); configs.add(loginEmpEntitycolumn); // for halfDayLLimit-26 ColumnConfig halfDayLLimitcolumn=new ColumnConfig(); halfDayLLimitcolumn.setId("halfDayLLimit"); halfDayLLimitcolumn.setHidden(true); configs.add(halfDayLLimitcolumn); return new ColumnModel(configs); 现在我想将checkinDate,CheckIntime,CheckOutDate和CheckOutTime列单元格设置为Noneditable或基于eventCombo框值的值禁用. 如何在eventCombo的监听器中进行此操作.请指教.
我尝试下面的代码来禁用和启用单元格,但它禁用单元格罚款.但禁用后,如果我选择另一个,它不会再次启用. 听者GT; gridAfterEditListener = new Listener>(){ @Override public void handleEvent(GridEvent<AttendanceCaseCreationModel> be) { AttendanceCaseCreationModel data = be.getModel(); String val = data.get("event"); if(val.equalsIgnoreCase("Remove Attendance")){ data.set("checkinDate",""); grid.getColumnModel().getColumnById("checkinDate").getEditor().disable(); grid.getStore().update(data); grid.getView().refresh(true); } else { data.set("checkinDate",""); grid.getColumnModel().getColumnById("checkinDate").getEditor().enable(); grid.getStore().update(data); grid.getView().refresh(true); } } }; grid.addListener(Events.AfterEdit,gridAfterEditListener); 请建议如何解决此问题 解决方法
考虑禁用和启用单元格,我只是隐藏并使用CSS显示单元格.以下是我的代码,可以帮助我满足这一要求.
GridCellRenderer<AttendanceCaseCreationModel> checkinRenderer=new GridCellRenderer<AttendanceCaseCreationModel>() { @Override public Object render(AttendanceCaseCreationModel model,String property,ColumnData config,int rowIndex,int colIndex,ListStore<AttendanceCaseCreationModel> store,Grid<AttendanceCaseCreationModel> grid) { String color="pink"; if(eventcombo.getValue()!=null){ if(eventcombo.getRawValue().equalsIgnoreCase("Forgot To Checkin") || eventcombo.getRawValue().equalsIgnoreCase("Mark/Modify Attendance")){ color="pink"; } else{ config.style=config.style+ ";visibility: hidden;"; } } config.style=config.style+ ";background-color:" + color + ";"; config.style=config.style+ ";display: block;"; Object value = model.get(property); return value; } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |