문제

어떤 선택을 할 수가 있을 만들기 위한 상태의 동적 콘텐츠 ASP.Net 웹사이트?

여기에는 나의 시나리오이다.나는이 사이트에있는 여러,중첩된 컨텐츠 영역입니다.최고 수준의 조치 연결 기능 지역 Catalog, Subscriptions, Settings.

를 클릭할 때에 기능적인 조치,내가 원하는 동적으로 내용을 추가로 특정하는 작업입니다.예를 들어,카탈로그 클릭하면,를 표시하고 싶은 나무와 카탈로그 폴더&파일,그리고 지역의 권리에 대한 정보.

를 클릭할 때 나무에,내가 원하는 상황에 민감한 내용을 로드하에서부 지역(과 같은 속성이나 옵션을 관리하는 파일).


로 시작했는데 UserControls.그들이 일만큼 좋은 나는 선적으로 모든 것 페이지 않자 하나가 사라집니다.로 하나,사라졌 ViewState 페이지 불었기 때문에 보태는 나무이 잘못되었습니다.

(나는 원하지 않았을 재료로 내 페이지 싶지 않기 때문에 응답이 너무 거대)

그래서,내 옆에 접근 방식을 바꾸는 동적과 지역 IFrames.대신 다음의 인스턴스화 UserControl, 에,나는 그냥 변경 소스에서 나 IFrame.이후의 내용 IFrames 었 독립적인 페이지를 내가 실행되지 않았다 ViewState 문제입니다.

하지만,나는 걱정 IFrames 나쁜 수 있습니다 설계 선택,하지만 완전히 이유를 이해합니다.사이트에 공개되지 않습니다,그래서 검색 엔진지 않습니다.


그래서,마침내 내 질문입니다.

옵션에 대해 자세히 알아보이 시나리오?도록 선택할 경우,Ajax 솔루션(jQuery),가 있습을 유지하는 내 자신의 ViewState?은 거기에 다른 고려 사항 난 취해야 한다니까?

도움이 되었습니까?

해결책

다른 옵션:

  1. 콘텐츠만 동적 상태로 만들 수 있습니다.을 로드하는 충분한 컨트롤 페이지에서 아무것도 처리 및만 실제로 당신이 필요합니다.이것은 어떤 장난기 상태와 같은,하지만 의미합니다 당신의 페이지에는 더 큰 발자국이 있습니다.
  2. 컨트롤을 추가 페이지에 동적으로.당신은 이미이,그래서 당신이 볼 수 있는 문제의 일부는 여기에.기억의 장소를 만들의 동적 컨트롤 다시 게시는 Page_Init()이벤트,그리고 당신이 그들을 원하는 상태를 유지하는 데 필요한 상태다.내가 추천하는 데이터베이스입니다.

다른 팁

동적으로 추가되는 컨트롤은 ViewState에서 지속되지 않으므로 Ajax 또는 Iframes 등을 사용하는 것이 중요하지 않은 이유입니다.

가능한 한 중 하나는 포스트 백에서 제어를 다시 집중시키는 것입니다. 이것의 문제는 페이지 수명주기 (단순화)입니다.

  1. 초기화
    • loadViewState
    • 포스트백 데이터로드
    • 통화 제어로드 이벤트
    • 호출로드 이벤트
    • 통화 제어 이벤트
    • 제어 프레 렌더
    • 프레 렌더
    • SaveViewState
    • 부리다

이것이 의미하는 바는 동적 컨트롤을 다시 설명 할 수있는 유일한 장소는 초기화하는 것입니다. 그렇지 않으면 게시 된 데이터 (또는 ViewState 정보)가 해당 제어에로드되지 않습니다. 그러나 종종 ViewStat/Postback 데이터는 아직 초기화에서 사용할 수 없기 때문에 코드에는 추가해야 할 컨트롤을 파악하는 데 필요한 정보가 없습니다.

이 상황에서 내가 찾은 유일한 다른 요원은 DynamicControlsplaceholder. 이것은 매우 잘 작동하며 ViewState의 제어 정보를 지속합니다.


특정한 경우에는 많은 선택/사례가있는 것처럼 보이지 않습니다. 페이지에 모든 다른 컨트롤 세트를 갖고 ASP : 자리 표시 자 제어 내부에 넣은 다음 선택한 내용에 따라 보이도록 설정하는 것이 실용적입니까?

당신은 다른 옵션의 번호와,예 Iframe 나쁜 디자인 선택입니다.

첫 번째 옵션은 AJAX 솔루션입니다.고 있는지 정말 viewstate 시나리오 그것은 단지 당신이 통과 데이터를 앞뒤로 웹 서버,건물에 UI 비행으로 필요합니다.

다음 옵션을하는 동적으로 추가 컨트롤을 위해 필요한이 주어 포스트,마다.방법 이 작품은 그 시작에서 페이지의 생활주기,당신이 필요하 다시 작성 페이지로 정확하게 보내는 마지막 시간,그리고 그 덤프하는 모든 불필요한 제어 및 구축을 다만 원하는 사람들.

세 번째 옵션을 사용하는 것이터 페이지입니다.당신의 최고 수준의 컨텐츠에 마스터 페이지와 링크하는 페이지에 웹 사이트입니다.

나는 확실히 충분한 시간이 주어 내가 가지고 올 수 있지만,이러한 3 등에서 독서 당신의 문제입니다.

위에서 언급했듯이 동적 컨트롤과 뷰 스테이트는 잘 혼합되지 않습니다. 그러나 복잡한 동적 페이지에 대한 Viewstate를 수행하더라도 성능이 부풀어 오르기 때문에 성능이 나올 수 있기 때문에 좋은 일입니다.

Ajax [Ajax Pro를 사용하기가 매우 간단하기 때문에 Ajax Pro를 좋아합니다]를 사용하고 페이지 상태를 직접 관리합니다 [세션, 데이터베이스 테이블 또는 시나리오에서 작동하는 모든 것이 무엇이든. 이것은 진행하기가 조금 더 복잡하지만 결과는 효율적이고 반응이 좋을 것입니다. 각 페이지는 변경해야 할 것만 업데이트 할 수 있으며 항상 거대한 ViewState String을 계속해서 날려 버릴 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top