2014-02-27 9 views
0

현재 시나리오를 스크롤 막대 스크롤에 레코드를로드해야합니다. 빈 드롭 다운 목록이 있고 처음로드 할 때 서버에서 검색된 처음 20 개의 레코드를 추가합니다. 드롭 다운 스크롤에서 서버에서 20 레코드를 받고 드롭 다운에 추가 중입니다. 스크롤바 이벤트에서이 프로세스를 반복하고 다음 20 개 레코드와 다음 20 개 레코드를 드롭 다운에 추가합니다.Jquery가 모든 레코드를로드 할 때

다음은 내 코드/알고리즘입니다.

내 질문 : 서버에서 20 개를로드하는 대신 모든 레코드를 한 번에로드 할 수있는 옵션이 있습니까?

단점 : 한 번에 20 레코드 만 반환합니다. 페이지 크기는 20으로 설정됩니다. odata 업데이트를 제어 할 권한이 없습니다. 시나리오를 20 번씩 20 번씩 반복해야하고 페이지로드시 전체를 합쳐야합니다.

var nextCitiesLink = null; 
    var pgLoading = false; 


    $("#SelectedNames").bind('scroll', function(e) { 
     loadCityNames(); 
    }); 

    function loadCityNames() { 
     if (!pgLoading && nextLinkPgs != null) { 
      pgLoading = true; 
      $.ajax({ 
       type: "GET", 
       url: nextCitiesLink, 
       crossDomain: true, 
       cache: false, 
       contentType: 'application/json; charset=utf-8', 
       xhrFields: { 
        withCredentials: true 
       }, 
       success: function (result) { 
        debugger; 
        var namesDrpdown = $('#SelectedNames'); 
        $.each(result.value, function(val, data) { 
         namesDrpdown.append($('<option></option>').val(data.Id).html(data.Name)); 
        }); 

        nextCitiesLink= "odatalink&$skip=20"; 
        pgLoading = false; 
       }, 
       complete: function() { 
       } 
      }); 
     } 
    } 

답변

1

페이지를 채우기 위해 필요한 페이지 수를 얻기 위해 여러 요청을 할 수 있습니다.

페이지 크기를 늘리려면 OData 서비스를 업데이트 할 수있는 사람이 누구인지 물어 보는 것이 좋습니다. 클라이언트가 한 번의 호출로 모든 것을 요청할 수있는 것은 좋지 않은 아이디어입니다.

0

OData는 현재 클라이언트 측에서 페이지 무시를 지원하지 않습니다. 쿼리 옵션이나 기본 설정 헤더가 지원하지 않습니다.

그러나 OData 서비스가 사용자에 의해 작성된 경우. 서버 구동 페이징을 사용하지 않도록 서버를 구성 할 수 있습니다. 서비스에 대한 http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options#server-paging

이 페이지를 참조 할 수 있습니다 WCF 데이터 서비스 서버를 사용하여 내장 : http://msdn.microsoft.com/en-us/library/ee473424(v=vs.110).aspx

중 하나로, OData 서비스에 대한

는 ASP.NET 웹 하나로, OData이를 참조하십시오 API를 수정하기 위해 사용 내장