2010-01-27 10 views
0

asp.net 페이지에서 accordian div 집합 (프로토 타입 라이브러리에서 제공)이 있습니다. accordian의 상태를 저장하고 싶습니다. 따라서 포스트 백 이벤트가 발생하면 페이지를 완전히 다시로드하고 기본 div를 여는 대신 동일한 div가 열려 있습니다.vb.net에서 자바 스크립트 클릭 이벤트 발생

div의 toggler 클릭 이벤트 함수를 사용하여 열려있는 div의 ID로 페이지 컨트롤 값을 설정 한 다음 해당 div를 호출하는 포스트 백 이후에 click 이벤트를 발생시키는 것이 계획되었습니다. div를 보유하는 컨트롤의 값을 사용합니다 ID)를 대상으로합니다. 그러나 vb.net에서 자바 스크립트 클릭 이벤트를 발생시키는 방법을 잘 모르겠습니다.

1) vb.net codebehind 페이지에서 javascript 클릭 이벤트를 발생시키는 방법을 말해 줄 수 있습니까? - 또는 - 2)이 작업을 수행하는 좀 더 세련된 방법이 있습니까? 이 혼용을 수행 할 수있는 방법은 없습니다

감사 코드 이후

답변

0

뒤에 서버 측과 자바 스크립트는 클라이언트 측이다. 내가 생각하는 가장 좋은 방법은 JavaScript에서 포스트 백 (asp : HiddenField와 같은)에서 생존 할 수있는 상태를 유지하는 데 사용되는 페이지를 제어하는 ​​것입니다. 그런 다음 "열린"div의 ID를이 숨겨진 필드로 설정할 수 있으며 포스트 백에서는 해당 값이 viewstate에서 유지됩니다.

그러면 hiddenfield에 들어가는 onload라는 작은 함수를 추가하고 id를 잡고 적절한 패널을 설정해야합니다. 이 모든 것을 감안할 때 MultiView 컨트롤의 사용법을 조사하는 것이 좋습니다. 이것은 정확하게이 컨트롤이 처리하기 위해 생성 된 것입니다.

0

쿠키를 사용할 수 있습니다. 아코디언 상태가 변경되면 쿠키를 다시 작성하십시오. 페이지가로드되면 쿠키에 데이터를로드하고 accordian 상태를 재설정하는 함수를 실행합니다.

아마도 viewstate를 망치는 것보다 훨씬 쉽습니다.

1

훌리오,이 시도 : "runFunction"라는 JS 기능을 실행

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "runFunction", "runFunction();" True) 

합니다. 열린 div의 ID를 페이지의 숨겨진 필드 나 다른 것으로 저장하는 것에 대한 여러분의 아이디어는 좋은 생각입니다. 사용자가 페이지를 떠난 후에도 아코디언 상태를 유지하지 않으려면 쿠키에 저장하는 것이 불필요하다고 생각합니다. 그렇지 않으면 쿠키가있는 사람의 모든 요청에 ​​대해 두 가지 방식으로 더 많은 데이터를 유출하게됩니다.

다른 아이디어 AJAX를 활용할 수 있습니다. 이것은 서버에 대한 매우 가벼운 호출을 의미하며 페이지의 해당 부분이 새로 고침되지 않으므로 아코디언 자체가 재설정되지 않습니다.

관련 문제