2013-04-12 3 views
5

검도 UI 그리드를 사용하고 있습니다. 그 안에 배치 모드를 사용하여 값을 저장했습니다. 한 행의 레코드를 변경하면 해당 행의 값도 변경되고 저장을 클릭하면 두 필드가 모두 데이터베이스에 저장됩니다.검도 UI 그리드의 값을 동적으로 변경하는 방법

예 : 나는 같은 표를 가지고있다 :

Integer Value 
    1   First 
    2   Second 
    3   Third 
    4   Fourth 

나는 1의 값을 4로 변경하면 4가 변경되고 값 또한 동적으로 변경된다. 제가 여기서 말하는 1과 4를 교환하고 싶습니다. 그리고 나는 또한 을 모든 필드로 바꿀 수 있지만 마침내 모든 레코드를 데이터베이스에 저장해야합니다. 제가

var grid = $('#grid').data("kendoGrid"); 
var selectedRow = grid.select(); 
var selectedRowIndex = selectedRow.index(); 
console.log(selectedRowIndex); 

var firstItem = dataSource.data()[selectedRowIndex]; 

var datalength = dataSource.data(); 
for (var i = 0; i < datalength.length; i++) 
    { 
    var dataItem = datalength[i].id; 
    if (dataItem == firstItem.get('id')) 
     {         
     var secondItem = dataSource.data()[i];         
     secondItem.set('id', dataItem);        
     } 
    } 

그 다음 값이 변화되는 그리드 변경 기능에있을 것이다

이 코드처럼 시도하지만 변경 한 후 값이 상기 제어부에 전달되지 않는다.

답변

7

데이터를 직접 재생하려면 변경 한 레코드를 더티로 표시해야합니다.

dataSource.data()[changedIndex].dirty = true; 
dataSource.sync(); 
+0

감사합니다. 그리고 검도 UI 그리드의 저장 이벤트에서 어떤 것이 바뀌는 지 알 수 있습니까? – Pa1

+0

죄송합니다. 귀하의 질문에 답하고 있지 않습니까? – Vojtiik

+0

이 두 줄의 코드는 모두 오류 –

0

검도 그리드에서 데이터 값을 설정하기 만하면됩니다.

$ ("# my_grid") 데이터 ("kendoGrid"). dataSource.data() [rowindex] .columnName = newValue;

내 프로젝트에서 드롭 다운 변경시 열 이름 = fclty_cd 인 Kendo 그리드 행의 값을 변경했습니다. "( $ ($ ($ ('# 그리드 테이블 TR [역할 = 행]) [I]) 찾습니다.

function onChange(e) { 
    var fromContactNumber = parseFloat($('#fromContactNumber').val()); 
    var toContactNumber = parseFloat($('#toContactNumber').val()); 
    var length = $('#grid table tr[role=row]').length; 
    var faculty = $('#ddl_Faculty').val(); 
    for (var i = 1; i < length; i++) { 
     var num = parseFloat($($('#grid table tr[role=row]')[i]).find("td")[4].innerText); 
     if (num >= fromContactNumber && num <= toContactNumber) { 
      $("#grid").data("kendoGrid").dataSource.data()[i - 1].fclty_cd = faculty; 
      $($($('#grid table tr[role=row]')[i]).find("td")[11]).text(faculty); 
     } 
    } 
} 

이 줄은이 UI의 값을 변경 :

내가 쓴 td ") [11]) 텍스트 (교수);

이 줄은 검도 데이터 표 안에있는 값을 변경합니다. $ ("# my_grid") data ("kendoGrid"). dataSource.data() [rowindex] .columnName = newValue;

관련 문제