2016-09-09 3 views
0

내 데이터 소스에 '1'과 '1'의 두 필드가 있습니다.검도 용 그룹 머리글 사용자 정의

현재 숫자 필드를 사용하여 그룹화하고 그룹 헤더는 '번호 : xxx'로 표시합니다. 현재 텍스트 뒤에 이름 필드를 추가하는 방법이 있습니까? '번호 : xxx, 이름 : xxxx'?

나는 검도 표 문서를 검사하고 오랜 시간 동안 검 색했지만 검도 그리드 지원만으로 그룹화 된 필드의 값 또는 그룹화를 기반으로하는 그룹 헤더를 보여 주므로이 두 필드로 그룹화 할 수있는 솔루션을 찾을 수 없습니다.

그럼 다른 해결책이 있습니다. 두 필드를 결합한 새 필드를 추가 한 다음이 새 필드로 그룹화하십시오. 그러나 새 필드는 열 머리글의 열 필터에 표시됩니다. 이 문제를 해결할 방법이 있습니까?

$("#grid").kendoGrid({ 
 
    columns: [{ 
 
     field: "number", 
 
     hidden: true 
 
    },{ 
 
     field: "name" 
 
    }, { 
 
     field: "order" 
 
    }], 
 
    dataSource: { 
 
     data: [{ 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order1"    
 
     }, 
 
     { 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order2"    
 
     }, 
 
     { 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order3"    
 
     },{ 
 
     \t \t number: 2, 
 
      name: "Allen", 
 
      order: "order1" 
 
     },{ 
 
     \t \t number: 2, 
 
      name: "Allen", 
 
      order: "order2" 
 
     } 
 
     ], 
 
     group: { 
 
      field: "number"   
 
     } 
 
    } 
 
});

아래의 코드는 결합 된 필드를 표시 할 수 있지만 두 가지 문제가있어 : 1. 헤더 텍스트는 항상 '헤더'포함 접두사를, 같은 헤더 "로 : 번호 : 1, 이름 : Jane Doe "; 2. 열 필터에 머리글 열이 있습니다.

$("#grid").kendoGrid({ 
 
    columns: [{ 
 
     field: "number", 
 
     hidden: true 
 
    },{ 
 
     field: "name", 
 
     hidden: true 
 
    }, { 
 
     field: "order" 
 
    },{ 
 
     field: "header", 
 
     hidden: true 
 
    } 
 
    ], 
 
    dataSource: { 
 
     data: [{ 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order1", 
 
      header: "number: 1, name: Jane Doe" 
 
     }, 
 
     { 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order2", 
 
      header: "number: 1, name: Jane Doe" 
 
     }, 
 
     { 
 
     \t \t number: 1, 
 
      name: "Jane Doe", 
 
      order: "order3", 
 
      header: "number: 1, name: Jane Doe" 
 
     },{ 
 
     \t \t number: 2, 
 
      name: "Allen", 
 
      order: "order1", 
 
      header: "number: 2, name: Allen" 
 
     },{ 
 
     \t \t number: 2, 
 
      name: "Allen", 
 
      order: "order2", 
 
      header: "number: 2, name: Allen" 
 
     } 
 
     ], 
 
     group: { 
 
      field: "header"   
 
     } 
 
    }, 
 
    columnMenu: true 
 
});

감사

+0

당신이 코드에서이 시나리오를 재현 할 수 있습니까? 그러면 문제를 해결하는 데 도움이됩니다. 단지 설명만으로는 할 수있는 것이별로 없습니다. – Cerbrus

+0

@Cerbrus, 답장을 보내 주셔서 감사합니다. 게시물의 코드를 참조하십시오. 숫자로 그룹화 된 데이터 및 그룹의 모든 이름이 동일하므로 이름 필드를 숨기고 그룹 머리글에 표시합니다. "number : 1, name : Jane Doe"와 같이. – Allen4Tech

답변

0

는 groupHeaderTemplate를 사용해야 그룹 머리글에서 열 설명을 숨기려면 : "# = data.value #".

ColMenu에서 열을 숨기려면 열 정의에서 "menu": false를 사용해야합니다.

과 같아야 적용을 모두 변경 사랑의 열 :

{ 
     field: "header", 
     hidden: true, 
     "menu": false, 
     groupHeaderTemplate: "#= data.value #", 
    } 
+0

모든 레코드에 대해 전체 데이터 소스를 반복해야하는 것처럼 보입니다. 성능 문제가 발생할 수 있습니다. 다른 방법이 있습니까? 내 게시물에서 솔루션을 작성했지만 제대로 작동하지 않는다면 도입 된 헤더 열을 열 필터에 숨기고 코드에서 "header :"접두어를 숨길 수 있습니까? – Allen4Tech

+0

groupHeaderTemplate : "# = data.value #" – calinaadi

+0

감사합니다.이 두 번째 문제는 해결할 수 있지만 첫 번째 문제를 해결하는 방법? 결합 된 필드가 열 필터에 표시됩니다, 숨길 수있는 방법이 있습니까? – Allen4Tech