2012-05-14 5 views
2

목록에서 json 데이터를 통해 항목을 추가하는 목록을 만듭니다. 내가 직면하고있는 문제는 삭제 버튼이 있고 버튼을 클릭하면 목록에서 선택한 항목이 상점에서 삭제되어야한다는 것입니다. 목록에서 항목 제거

은 내가
{ 
    text: '', 
    id: 'deletenotesBtn', 
    iconCls:'trash', 
    iconMask: true, 
    ui:'action', 
    handler: function(){ 
    var itemSelected = Ext.getCmp('noteslist').getSelection().remove(); 
    // this.remove(this, true); 
    alert('item deleted'); 
} 

내가 그것을 달성 할 수있는 방법에 대한 제안

을 시도 무엇?

답변

5

답변은 귀하의 질문입니다. 목록에서가 아니라 상점에서 항목을 제거해야합니다.

... 
handler: function(){ 
    var selection = Ext.getCmp('noteslist').getSelection(); 
    Ext.StoreManager.get('MyStore').remove(selection[0]); 
} 
... 

즉, 목록에 사용하는 상점을 'MyStore'라고 가정합니다.

목록의 'getSelection()'메소드의 출력은 선택한 항목 (가능하면 여러 항목)의 배열입니다. 아무 것도 선택하지 않으면 빈 배열이 반환됩니다. 하나 이상의 항목이 선택되면 상점의 해당 레코드 h 열을 리턴합니다.

모든 경우에 단추의이 핸들러 기능은 선택한 항목을 상점에서 제거하므로 그에 따라 목록이 새로 고쳐집니다.

또한, 상점의 구성에 따라, 당신은이 작업이 수행 된 후 동기화 할 수 있습니다 :이 도움이

Ext.StoreManager.get('MyStore').sync(); 

희망을.

+0

근무했습니다. 정말 고맙습니다. 또한 내가 선택한 목록 항목의 내용을 추출 할 수있는 방법이 있습니까? – Khush

+0

내 (업데이트 된) 대답에서 설명한대로 getSelection()은 선택된 레코드의 배열을 반환합니다. 따라서이 결과의 내용을 검사 할 수 있습니다. 예를 들어 상점의 모델에 'field1'이라는 필드가 있다면 "selection [0] .get ('field1')"과 같이 입력하십시오. – borck

+0

yea.figured. 도움을 많이 주셔서 감사합니다. – Khush