2014-12-01 5 views
0

항목 목록을 표시하기 위해 매끄러운 격자를 사용하고 있습니다. $.ajax 호출을 사용하여 목록이 채워집니다 (jquery-ui dialog box).scrollRowIntoView가 jquery-ui 대화 상자에서 작동하지 않습니다.

이전에 선택한 항목의 위치로 스크롤해야한다는 요구 사항이 있습니다. 내가

(가 총 22 행은 내가 이전에 16 행을 선택했다) :

function SetDefaultItemSelected() { 

     var selectedKey = 16; // hardcoded but there is logic to get previous item 

     for (var rowIndex = 0; rowIndex < myItemDataView.getLength(); rowIndex++) { 
      var gridRow = myItemDataView.getItem(rowIndex); 
      if (gridRow.Key === selectedKey) { 
       myItemGrid.setSelectedRows([rowIndex]); 

       //TODO: check why the scrollRowIntoView is not working 
       myItemGrid.scrollRowIntoView(rowIndex); 
       break; 
      } 
     } 

출력이 같은 것입니다 : 따라서 , 나는 스크롤 및 이전에 선택한 항목을 선택하는 기능에 따라 사용하십시오 왜 최상위 3 행을 숨기고 16 행으로 스크롤하지 않는지 확실하지 않습니다.

Slick Grid with data populated

UPDATE 1 :

그냥 내가 위의 기능을 자사의 클릭 이벤트를 버튼을 추가하고 결합하는 경우, 스크롤이 마법처럼 작동하는지 확인. 그러나 그리드 생성 직후에 함수를 호출 할 때 내가 뭘 잘못하고 있는지 확실하지 않습니다. 도와주세요.

기능이 페이지에서 작동하지만 jquery-ui 대화 상자에서 작동하지 않을 수 있습니까?

UPDATE 2 :

나는 새로운 MVC3 응용 프로그램을 작성 같은 것을 구현하기 위해 노력 - $ 아약스에 의해 LoadData 함수 호출을하고 매끄러운 그리드를 채워 다음 기본 ID를 선택했습니다.

그리드가 jquery-ui 대화 상자에있는 경우에만 문제가 발생한다는 것을 알았습니다. 페이지의 동일한 눈금이 정상적으로 작동합니다.

아약스 호출로로드 된 대화 상자가 아니라 페이지에서 매끄러운 눈금 스크롤이 작동하는 버그 일 수 있습니까 ??

샘플 코드를 공유해야하는 경우에 대비하여 알려주십시오.

UPDATE 3 :

추가 샘플 코드. 어떤 도움을 많이 주시면 감사하겠습니다!

https://groups.google.com/forum/#!topic/slickgrid/CUjY3H1F_zM

답변

0

해결 방법 :

모든 안녕하세요,

내 샘플 코드 2 JQuery와 아약스 호출 (구글 그룹에 부착 질문에 UPDATE 3 링크)가 있습니다 :

1) 빈 jquery 대화 상자를로드하려면 .load() PartialView

2) .ajax()은 partialView.js 파일의 document.ready을 호출하여 매끄러운 그리드 데이터를로드합니다. (partialView.js는 PartialView에서 참조됩니다.많은 일을 시도하는 동안 cshtml)

은, 난 그냥 2 .ajax() 호출하기 전에 debugger;을 넣어 크롬 개발자 도구 모음에서이 디버그 지점을 통과 할 때, 문제가 올 것 같지 않은 것을 발견했다.

그래서 나는 debugger; 제거 및 500 MS

window.setTimeout(functionToBeDelayed, requiredDelay);

의 지연을 도입하는 생각과 기능이 예상대로 작동하기 시작했다.

이러한 중첩 된 ajax 호출이 어떻게 문제를 일으키는 지 아직 확신 할 수 없습니다. 그러나 현재로서는 500 밀리 초 지연이 나를 위해 속임수를 쓰고 있습니다.

현재로서는 해결 방법을 적용하고 있지만 더 나은 해결책을 찾고 있습니다..