2011-10-27 2 views
2

필드 중 하나가 편집 항상 표시되어야이 필드 편집기, 여기SmartGwt ListGrid.setAlwaysShowEditors (참) 문제

ListGrid listPanel = new ListGrid(); 
listPanel.setDataFetchMode(FetchMode.PAGED); 
listPanel.setDataSource(datasource); 
listPanel.setAutoFetchData(true); 
listPanel.setAlwaysShowEditors(true); 
listPanel.setCanEdit(true); 
listPanel.setAutoSaveEdits(false); 
listPanel.setSaveByCell(false); 
listPanel.setEditOnFocus(true); 
listPanel.setEditEvent(ListGridEditEvent.CLICK); 

편집 가능한 필드가 여기

을 생성 생성 코드입니다 우리는 기본 ListGrid이 ListGrid의 데이터가 사용되는 경우 filtred
ListGridField manualScoreColumn = new ListGridField("score", "Score"); 
manualScoreColumn.setType(ListGridFieldType.INTEGER); 
manualScoreColumn.setCanEdit(true); 
manualScoreColumn.setValidateOnChange(true); 
manualScoreColumn.setValidators(new IntegerRangeValidator()); 

문제이다

listPanel.setCriteria(criteria); 

우리는 exeption을 얻을

12:42:31.204:RDQ2:WARN:Log:TypeError: _5 is null 
ListGrid._clearingInactiveEditorHTML() @ adminApp/sc/modules/ISC_Grids.js:1530 
GridBody.redraw(_1=>false) @ adminApp/sc/modules/ISC_Grids.js:889 
[c]Canvas.clearRedrawQueue() @ adminApp/sc/modules/ISC_Core.js:3300 
[c]Class.fireCallback(_1=>{Obj}, _2=>undef, _3=>[object Array], _4=>{Obj}, _5=>true) 
@ adminApp/sc/modules/ISC_Core.js:299 
Timer._fireTimeout("$ir2251") @ adminApp/sc/modules/ISC_Core.js:1269 
unnamed() @ adminApp/sc/modules/ISC_Core.js:1264 
unnamed() @ 

내가 비슷한 질문 herehere 발견했지만 해결책은 제시되지 않았다.

해결 방법이 있습니까?감사합니다.

답변

0

당신이 ListGridField에 대한 당신의 선택의 편집기를 설정하는 또 다른 방법을

listPanel.setFields(manualScoreColumn); 

을 ListGrid하는 ListGridField를 설정했는지 확인은 setEditorType 방법을 사용하는 것입니다

ListGrid listPanel = new ListGrid(); 
    listPanel.setCanEdit(true); 
    listPanel.setAutoSaveEdits(false); 

    //You can use any formitem instead of date item,Say TextItem,SelectItem etc 
    DateItem dateItem = new DateItem(); 
    ListGridField dateListGridField= new ListGridField("date", "Date"); 
    dateListGridField.setEditorType(dateItem); 
    listPanel.setFields(dateListGridField);