2014-07-11 2 views
0

나는 많은 검색을 해왔지만이를 구현할 방법을 찾지 못했습니다. 미안하다. 내가 찾던 것을 놓친.DataView를 사용하여 펼치기/축소 할 때의 Slickgrid 정렬

Example 4 adding tree functionality을 템플릿으로 사용했지만 트리 기능이 활성화되어있는 동안 열 정렬을 구현할 수 없었습니다.

ID가 더 이상 없기 때문에 인라인 필터의 렌더링 된 버전에서 무한 루프로 끝까지 시도했습니다.

누구나 트리 기능을 사용하여 정렬을 구현할 수 있었는지 또는 어떤 방법으로 포인터를 완성 할 수 있습니까? 부모 행을 정렬하고 부모와 자식을 함께 두는 방법이 있습니까?

내 필터는 기본적으로 예제의 필터와 약간 동일하지만 검색에 약간의 비틀기가 있습니다.

부모와 자식이 더 이상 순차적이지 않으므로 item.parent가 반복적으로 반복됩니다. 이제 모든 행에 자식이 있습니다.

if (item.parent != null) { 
      var parent = oppLineGridData[item.parent]; 

      while (parent) { 
       if (parent._collapsed) { 
        return false; 
       } 

       parent = oppLineGridData[parent.parent]; 
      } 
     } 

전체 기능 :

function openFilter(item) { 

     if (specificColumn != null) { 
      if (searchString != "" && item[specificColumn].toLowerCase().indexOf(searchString) == -1) { 
       return false; 
      } 

     } else { 
      if (searchString != "" 
       && item["accountName"].toLowerCase().indexOf(searchString) == -1 
       && item["solution"].toString().toLowerCase().indexOf(searchString) == -1 
       && item["Adjusted_Commitment__c"].toLowerCase().indexOf(searchString) == -1 
       && item["Deal_Registration_ID__c"].toLowerCase().indexOf(searchString) == -1 
       && item["lineItemValue"].toString().toLowerCase().indexOf(searchString) == -1 
       && item["oppotunityName"].toLowerCase().indexOf(searchString) == -1 
       && item["closeDate"].toLowerCase().indexOf(searchString) == -1 
       && item["productName"].toLowerCase().indexOf(searchString) == -1 
       && item["stageName"].toLowerCase().indexOf(searchString) == -1 
       && item["ownerName"].toLowerCase().indexOf(searchString) == -1 
       && item["accountManagerList"].toLowerCase().indexOf(searchString) == -1 
       && item["accountManagerMgr2"].toLowerCase().indexOf(searchString) == -1 
       && item["ProServicesEngagement"].toLowerCase().indexOf(searchString) == -1 
       && item["proServicesEngagementAll"].toLowerCase().indexOf(searchString) == -1 
       && item["productType"].toLowerCase().indexOf(searchString) == -1 
       && item["commissionableEMName"].toLowerCase().indexOf(searchString) == -1 
       && item["lastUpdated"].toLowerCase().indexOf(searchString) == -1 
       && item["updatedBy"].toLowerCase().indexOf(searchString) == -1) { 
       return false; 
      } 
     } 
     if (item.parent != null) { 
      var parent = oppLineGridData[item.parent]; 

      while (parent) { 
       if (parent._collapsed) { 
        return false; 
       } 

       parent = oppLineGridData[parent.parent]; 
      } 
     } 

     return true; 
    } 

답변

1

유일한 대답은 필터의 인라인을 비활성화하는 것입니다. 즉, inlineFilters 옵션을 false로 설정해야합니다. 나는 그저 같은 문제로 고통을 겪었고 경험에서 이것을 말해 준다. SlickGrid 용 필터의 인라이닝은 복잡한 코드를 처리하지 않습니다. 내부 또는 내부 루프가있는 경우에도 나를 위해 무한 루프로 들어가기에 충분했습니다.

관련 문제