문제

스택 오버플로에서 비슷한 질문을 살펴 보았지만이 특정 문제에 대한 해결책을 찾을 수 없었습니다. 내부에 업데이트 패널이있는 간단한 (실제로는 아니지만 척하자) ASP.NET 페이지가 있습니다.

이 업데이트 패널에는 a가 있습니다 HiddenField 내 자신의 사용자 정의 JavaScript를 통해 설정/업데이트 될 값으로 제어합니다. 가치 ~이다 Firebug를 사용하여 DOM에서 볼 수 있듯이 업데이트되었습니다.

이것 옆 HiddenField ~이있다 LinkButton JavaScript를 호출하여 HiddenField 사용 OnClientClick (이것은 작동합니다). 그만큼 LinkButton 또한 OnClick 값이 수정 된 후 실행되는 핸들러.

그러나, OnClick 핸들러, 나는 초기 가치를 얻습니다 HiddenField 그리고 JavaScript가 설정 한 값이 아닙니다!

왜 이런거야? 이것은 "의 경우입니까?"페크 박"?

편집하다: a와 같은 것을 시도했습니다 TextBox 아무런 성공도없이. 또한 양식을 제출하기 전에 Firebug를 사용하여 수동으로 값을 수정하려고 시도했습니다.

편집 2 : 방금 깨달았습니다 Page_Load 전에 호출됩니다 OnClick 물건을 엉망으로 만들고있는 핸들러. 다른 사람들이 같은 문제를 겪을 수 있으므로 질문을 삭제하지 않을 것이며이 질문이 가치가 있다고 생각할 수 있습니다.

도움이 되었습니까?

해결책

AJAX 업데이트 패널에서 제공하는 EndRequestHandler 이벤트를 사용하여 수행해야합니다.

이것을보세요->

http://www.codeproject.com/kb/ajax/afterajaxupdate.aspx?display=print

다른 팁

이것은 ViewState가 당신을 나쁜 농담으로 만드는 것처럼 보입니다 (자주). 내가 생각하는 것은 페이지가 다시 게시되면 숨겨진 필드가 ViewState에 포함 된 값으로 초기화된다는 것입니다.

한 가지 시도 : 값에 직접 액세스하지 마십시오. yourHiddenField.Value 그러나 페이지의 oninit에서 Request.Forms[yourHiddenField.UniqueId] 그리고 그것을 숨겨진 필드에 던져 값을 추출하십시오. 이것이 올바른 구문인지 확실하지 않습니다. "게시 된"값은 내가 옳은 것을 기억한다면 어딘가에 요청 오브젝트에 있어야합니다. 그곳에서 가치를 얻는 지 확인하십시오. 당신이 그것을 거기에 가져 오면, 문제는 페이지의 Oninit 이벤트 이후에 다시 매핑되는 ViewState입니다. 그런 다음 우리는 그것에 대한 해결책을 찾아야합니다 ...

클라이언트에 새 입력을 어떻게 생성하고 있습니까? 대신 서버에서 이것을 수행 할 수 있습니까?

이런 식으로 당신은 정당한 것을 사용할 수 있습니다 OnClick 두 가지 대신 OnClick 그리고 OnClientClick.

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