2017-04-12 11 views
-1

애들 아, 내 화면에서LightSwitch HTML 무한 스크롤 버그

내가 그 안에 2 개 행 레이아웃 A와 B가하는 열은 "컨테이너에 스트레치"의 높이 "루트"레이아웃이 모두는 높이가 "Stretch to Container"도 마찬가지입니다. A와 B에는 각각 수만 개의 레코드가 포함 된 테이블 컨트롤 (그리드)이 있습니다. LightSwitch는 결과를 페이징하기 때문에 한 번에 45 개의 레코드를 가져오고, 아래로 스크롤하여 다음 45 개의 레코드 등을 가져올 때까지 OK입니다. (무한 스크롤)

참고 : 두 가지 격자는 모두 수직 정렬이 있습니다. "콘텐츠에 맞춤".

그러나 레이아웃 A의 isVisible = false (디자이너 또는 postRender 메서드 : contentItem.isVisible = false)를 설정하고 응용 프로그램을 실행하려고하면 B는 예상대로 전체 가로 공간을 차지하지만 그 안에 포함 된 테이블 B는 아래로 스크롤하지 않아도 레코드를 가져올 단계를 알지 못합니다. 앱이 응답을 멈추고 브라우저가 충돌 할 때까지 45 개의 레코드가 45 개의 레코드를 가져옵니다. B를 숨기고 A를 표시하면 A의 표와 동일한 문제가 발생합니다.

LightSwitch JS 파일의 문제를 추적하지 않았습니다. 그리고 우리는 만족할만한 해결책을 찾지 못했습니다.

누군가가이 이상한 동작을 발견하고 해결책을 찾았습니까? 이 탭과 같은 다중 레이아웃 기능을 구현하고 다른 레이아웃에 대해 isVisible = false를 설정하여 한 번에 하나씩 표시해야합니다.

답변

1

이 결함은 Microsoft의 LightSwitch 라이브러리에있는 tryLoadMoreEntities 함수에있는 것으로 보입니다.

이 함수는 테이블의 높이를 뷰 영역 높이 (scrollHelper.viewHeight)와 비교하여 더 많은 항목을 테이블 (needMoreItems)에 추가해야하는지 여부를 결정합니다.

표가 "내용에 맞춤"으로 표시되고 숨겨져있는 경우 표의 높이가 0으로 평가되므로 loadMoreEntities 메서드를 호출하면 더 많은 항목이로드됩니다.

function tryLoadMoreEntities(table) { 
    var collection = table._collection; 
    if (!collection) { 
     return; 
    } 
    if (collection.state === _VisualCollectionState.idle) { 
     var scrollHelper = table._scrollHelper, 
      needMoreItems = 
       table.data._isActivated && 
       table._tableElement.is(":visible") && 
       table._tableElement.height() - scrollHelper.viewTop < 
        2 * scrollHelper.viewHeight; 
     if (needMoreItems) { 
      loadMoreEntities(table); 
     } else { 
      endLoading(table); 
     } 
    } 
} 

이 개정 당신이있어 연속 로딩을 방지해야 테이블 요소의 가시성의 추가 검사를 소개합니다 :

는 다음과 같이, 당신은이 기능을 수정하여이 결함을 보정 할 수 있어야한다 미루어 경험.

+0

크리스에게 고마워 할 정도로 고맙습니다. 두 개의'tryLoadMoreEntities' 함수 (리스트 뷰를위한 또 다른 하나의 함수)가 있고 같은 방식으로 둘 다 수정할 수 있습니다. – user1533706

+0

친애하는 Chris, 아마도이 질문을 볼 수 있을지 궁금합니다. http : // stackoverflow. co.kr/questions/43407557/lightswitch-html-root-screen-layout-the-the-screen-the-its-height 높이가 – user1533706

+0

오늘 나중에 살펴보고 도움이 될지 알려드립니다. –