2014-04-23 4 views
0

검도 그리드 용 검도 열 메뉴 옵션을 사용하고 있습니다. 세 번째 옵션 즉, 열을 숨기거나 표시하면서 열을 표시하고 싶습니다. 해당 열의 제목이 비어 있습니다.조건에 따라 열 메뉴 열의 열을 숨기기

enter image description here

여기에 나는 값이을 보여주는 필요가없는 database.so에서 널오고 해당부터 RefValue4 및 RefValue5을 숨기려.

if (grid.dataSource.data()[0].RefName4==null) { 
    grid.hideColumn(18); 
} 

을하지만 결과를 달성 할 수 없습니다 :

나는 이런 식으로 일을하고 있습니다. 당신이 당신의 코드 샘플 (의 제안으로

+0

안녕하세요. – SantyEssac

답변

0

은 (그리드의 첫 번째 행의 내용을 확인 충분한가요 그렇다면, 당신은으로 열을 숨 깁니다 dataBound 핸들러 정의 할 수 있습니다 :

dataBound : function (e) { 
    // Get reference to the grid 
    var grid = e.sender; 
    // Get reference to received data 
    var data = e.sender.dataSource.data(); 
    // Check that we actually received any data 
    if (data.length > 0) { 
     // Iterate on columns hiding those that in the first row have no data 
     $.each(grid.options.columns, function (idx, elem) { 
      if (!data[0][elem.field]) { 
       grid.hideColumn(idx); 
      } 
     }); 
    } 
} 

이 언제 실행을 서버에서 데이터를 수신했지만 앞에서 말했듯이 첫 번째 내용 만 검사하지만 모두 확인하기 위해 쉽게 수정할 수 있습니다.이 기능은 구현되지 않은 메뉴에서 열 제목을 숨기는 것입니다.

여기에있는 예 : http://jsfiddle.net/OnaBai/XNcmt/67/

EDIT : 데이터가없는 열은 표시되지 않지만 메뉴에도 표시되지 않도록하려면 열이없는 표에 columns을 구성해야합니다.

// Fetch data from the DataSource 
ds.fetch(function (d) { 
    // By default, no column in the grid 
    var columns = []; 
    // List of available column definitions 
    var definitions = [ 
     { field: "Id", hidden: true }, 
     { field: "FirstName", title: "First Name" }, 
     { field: "LastName", title: "Last Name" }, 
     { field: "City" }, 
     { field: "Position" } 
    ]; 
    // For each column in the definition check if there is data 
    $.each(definitions, function(idx, elem) { 
     if(d.items[0][elem.field]) { 
      // If there is data then copy the definition to columns 
      columns.push(elem); 
     } 
    }); 
    // Use received data plus the columns definition computed 
    $("#grid").kendoGrid({ 
     dataSource: d.items, 
     editable : false, 
     pageable : true, 
     columnMenu: true, 
     columns : columns 
    }).data("kendoGrid"); 
}); 

dsDataSource 정의입니다 : 데이터가 같은 일을하고 수신 후에는 런타임에 그것을 할 수 있습니다.

여기를 참고하십시오 :

+0

RefValue4에는 해당 열에 값이 없으므로 사용자가 this.can을 클릭하도록 설정하지 않으려 고합니다. – SantyEssac

+0

그리고 나는 그 열에 데이터가 없다면 열을 숨기고 표시하는 옵션을 숨기려고합니다. – SantyEssac

+0

초기로드에서 열을 숨기고 싶지 않거나이 작업을 수행하고 싶다면 메뉴에서 옵션을 숨기시겠습니까? – OnaBai

관련 문제