2014-01-15 2 views
2

필터 메뉴가있는 검도 그리드가있는 html/javascript 페이지를 작성하고 있습니다. 나는 다음과 같은 문제에 직면했다. 새로운 객체를 데이터 소스 (새로운 행)에 추가하고 kendogrid가 다시로드되면 (datasource.read) 값을 입력하는 필터 메뉴 내에서 textboxes 값을 잃어 버린다. http://jsfiddle.net/3qT3J/2/필터 메뉴 내에서 텍스트 상자 값을 잃었습니다

$("#grid").kendoGrid({ 
    dataSource: datasource1, 
    height: 300, 
    filterable: true // <== shows a button on each column that display a filter menu 

}); 
// reload the grid every 2 seconds: 
setInterval(function() { 
     datasource1.read(); 
}, 2000); 

그리드를 다시로드 할 때 다시 텍스트 상자를 채우기 위해 어떤 방법이 있나요 : 여기

데모입니까? 사용자가 입력 한 값은 어떻게 얻을 수 있습니까? 그리드가 다시로드 될 때 값을 잃지 않도록하는 kendogrid 속성이 있습니까?

텍스트 상자에 이벤트 수신기로 값을 가져 오는 것으로 생각했지만 텍스트 상자가 속한 열을 알 수 없습니다. 다음 코드로 이벤트 수신기를 추가했습니다. $ (".k- 텍스트 상자 "). on ("click change ", function1);

아이디어가 있으십니까? 감사

+0

데모 (jsfiddle/jsbin/plnkr)를 만들어보십시오; dataSource.read()는 필터를 삭제하지 않습니다. –

+0

예, dataSource.read()는 필터를 삭제하지 않지만 그래픽 인터페이스에서 사용자가 작성한 내용은 삭제합니다. 사용자가 필터 메뉴를 열고 일부 값을 입력하기 시작하면 datasource.read()를 호출 할 때이 값이 지워집니다. 나는 1 초마다 dataSource.read()를 호출한다. 데모를 작성하고 몇 분 안에 게시 할 예정입니다. 감사합니다. – paulalopesfc

+0

라스, 위 메시지에 데모 링크가 추가되었습니다. 고맙습니다. – paulalopesfc

답변

1

당신은 필터 메뉴가 있으므로 사용자가 완료 할 수 입력 열려있는 동안 다시로드 일시 정지 할 수 :

setInterval(function() { 
    var pauseRefresh = $(".k-filter-menu:visible").length; 
    if (!pauseRefresh) { 
     datasource1.read(); 
    } 
}, 2000); 

(demo)

+0

일시적인 해결책으로, 필터 메뉴의 mouseenter 및 mouseleave 이벤트 리스너에서 DataGrid 다시로드를 시작하고 시작했습니다. 예 : "$ ('form.k-filter-menu'). mouseenter (function ...)". 그러나 당신의 해결책은 더 좋습니다. 고맙습니다. – paulalopesfc

+0

당신을 환영합니다; 당신이 새로운 멤버이기 때문에 대답이 helfpul 인 경우 게시물 왼쪽에있는 화살표를 사용하여 upvoting을 고려해야하며 문제가 해결되면 [대답을 수락]해야합니다 (http : // meta.stackexchange.com/a/5235) –