flex 4.5에서는 itemRenderer를 사용하여 arrayCollection을로드하는 스파크 목록 (mxml 스타일 - _myList 및 borderContainer는 부모 응용 프로그램 외부의 라이브러리에 저장 됨)을로드하는 BorderContainer가있는 응용 프로그램이 있습니다 itemRenderer가 인 라인 렌더러가 아닙니다.리스트의 항목의 선택시에, itemRenderer가 전개되어리스트의 선택 항목으로부터 건네받은 데이터에 근거 해 아이템 렌더러 내의 특정의 컨트롤을로드 해, 사용자가 검색을 실행할 수 있도록 (듯이)합니다. 이것은 목록에 대한 dataProvider를 변경하려고 할 때까지 (사용자가 새로운 변수를 사용하여 새 dataProvider를 만드는 데이터 소스를 전환 할 수있게 할 때까지) 시작 /로드시에 모두 잘 작동합니다. 나는 시도했다 :itemrenderers가있는 플렉스 스파크 목록에서 dataprovider를 어떻게 변경합니까?
//app crashes
_myList.dataProvider.removeAll();
//app crashes
_myList.dataProvider = new ArrayCollection();
_myList.dataProvider = acNew;(the new array collection to populate the list)
//app doesn't crash, but I can't get to any of the global variables upon
//re-creation at the parent app level (even though I assigned it an id)
//so this is causing more headaches than I wanted
this.removeElement(_myList);
var searchList:SearchNew = new SearchNew();
searchList.percentWidth = 100;
searchList.percentHeight = 100;
searchList.id = "_myList";
searchList.setStyle("fontFamily","MyriadNoCFF");
searchList.g_appName = this.g_appName;
searchList.g_sessionID = this.g_sessionID;
searchList.g_TableID = this.g_tableID;
searchList.g_targetedLayer = this.g_tName;
searchList.g_testAC = new ArrayCollection();
searchList.g_item = <item/>;
searchList.g_req = <req/>;
searchList.g_sub_req = <req/>;
searchList.g_prev_where = <where/>;
searchList.g_prev_ws = <w/>;
searchList.g_breadcrumbsAC = new ArrayCollection();
searchList.g_controlType = "";
searchList.itemRenderer = new ClassFactory(myItemRenderer);
searchList.dataProvider = acNew;
this.addElement(searchList);
나는 _myList.dataGroup.invalidateDisplayList(); (ArrayCollection에 같은 _myList.dataProvider) 때 .refresh() 시도했습니다; .....이 전혀 작동하지 않고 단지 응용 프로그램됩니다 충돌을 계속합니다.
누구나 이전 dataProvider를 지우고 spark list의 새 arrayCollection을 기반으로 dataProvider를 재 할당하는 방법에 대한 조언이 있습니까? 아마도 이것은 내 itemRenderer와 관련이 있습니까? 내가 먼저 그걸 죽여야 할까?
고급 itemRenderer를 처음 사용했습니다. 여기에 예제가있다 :
http://flexponential.com/2009/09/23/deleting-items-in-a-list-from-an-item-renderer/ (가지) 나는 그것이 (하고 싶은 일을 할 것입니다
대신 removeItemAt를 사용하여, 나는에서 removeAll(), 그리고 외부 목록 상자 값의 변화를 사용하는 경우 언급 된 모든 구성 요소는 항목 렌더러 자체 내에서 클릭 대신 함수를 시작합니다.) 인라인 렌더러이고 제 위치에 있지 않습니다. 내 목록을 포함하는 borderContainer에서 deleteItem() 함수에 액세스하는 방법을 모르겠습니다.모든 안내가 크게 감사드립니다!
앱이 다운 된 경우 몇 가지 세부 정보를 제공 할 수 있습니까? 런타임 오류가 발생합니까? 그렇다면 오류는 무엇입니까? – JeffryHouser
런타임 오류 없음 .... 로깅 오류 없음 (필자의 function/try/catch) ... 운명의 화면이 회색으로 표시됩니다. 왜 아무런 징조도없이 끊어지게됩니다. – jeep