2013-10-10 2 views
4

검도 그리드에 대한 click 이벤트를 얻으려는 시도 때문에 Shift 키와 Ctrl 키를 바인딩 할 수 있습니다. 드래그 앤 드롭을 지원하지 않기 때문에 Kendo가 제공하는 고유의 다중 선택을 사용할 수 없습니다. dataBound 이벤트 다음에 함수를 만들면 클릭시 함수가 호출되지만 일반적인 click 이벤트는 아닙니다.검도 그리드에서 click 이벤트 받기

var onDataBound = function() { 
    selectItem.apply(this); 
} 

grid.dataBound = onDataBound; 

var selectItem.apply = function (e) { 
    console.log(e); 
} 

어떤 생각이? 미리 감사드립니다.

답변

8

Grid을 초기화 한 후에는 처리기를 click 이벤트에 바인딩해야합니다.

예 :

$("#grid").on("click", "table", function(e) { 
    console.log("clicked", e.ctrlKey, e.altKey, e.shiftKey); 
}); 

당신은 사용할 수 있습니다 Ctrl 키를을 누르면 검출

  • e.ctrlKey.
  • e.altKey을 눌렀는지 여부를 감지합니다.
  • e.shiftKey시프트이 눌려 졌는지를 검출합니다. 당신은 단지 테이블의 본문에 클릭을 감지하려면

, 당신은 "tbody" 또는 "td"으로 "table"을 대체 할 수 있습니다.

Jsfiddle example.

2

사용하여 그리드를 선언 dataBound 이벤트 :

grid = $("#grid").kendoGrid({ 
    ... 
    ,dataBound=onDataBound 
}); 

var onDataBound = function(e) 
{ 
    $("#grid").find("tr").click(selectItem.apply); 
}; 

var selectItem.apply = function (e) { 
    var dataItem = $("#grid").data("kendoGrid").dataItem(this); 
    if(e.ctrlKey) 
     alert('Ctrl + click on ' + dataItem.column1); 
} 

dataItem 당신이 주변에 통과 할 수 바운드 데이터 항목입니다.

+1

감사합니다. 그것은 내 프로젝트에 필요한 것이 었으며, 미래의 개발자들에게는 명확하고 읽기 쉽습니다. – t1nr2y

관련 문제