2008-10-19 4 views
0

프로그래밍 방식으로 이미 정의 된 usercontrol을 추가하는 버튼이 있습니다. 나는 포스트 백에 대한 각 컨트롤을 다시 작성 중이며 잘 보입니다. 텍스트 상자에 텍스트를 넣으면 이미지가 잘 보이지만 이미지는 URL을 잃어 버리고 있습니다. 어떤 아이디어가 왜 또는 어떻게 해결할 수 있습니까?동적 컨트롤이있는 포스트 백에서 ImageUrl이 손실되었지만 텍스트 상자에 해당 값이 유지됩니다.

AJAX updatepanel을 추가하여 도움이 될지 확인했지만 시도하지 않았습니다.

추가 설명 - 클릭 한 후 이미지의 URL을 설정 한 버튼이 있습니다. 동일한 값이 발생하는지 확인하기 위해 텍스트 상자에이 값을 입력합니다. 포스트 백 이후에는 텍스트 상자에 여전히 값이 있지만 이미지가 아닙니다 - 내 다른 ASP.Net 이미지가 모두 이미지를 잃어 버리고 컨트롤 (예 : ImageUrl)에 바로 정의되어 있습니다 (예 : ImageUrl)

--- 업데이트 확인, 문제에 대한 더 많은 정보를 얻었습니다. - 몇 가지 해결책이 있지만 여전히 하나의 문제가 남아 있습니다.

이미지가 URL을 잃어버린 이유는 ASP.Net 이미지가 아니기 때문입니다. ASP.Net은 포스트 백에 다시 만들어 질 때 값을 기억합니다. 그러나 자바 스크립트를 통해 변경된 주 이미지는 그 값을 잃습니다. 'm 정말 이것은 자바 스크립트를 사용하여 변경하기 때문에, 포스트 백은 이전 값으로 돌아 간다 ... 그래서 나는 숨겨진 값으로 채우고 그 값을 포스트 백에서 정의하려고 시도 할 것이다. 이미지의 ImageUrl ...

답변

1

<asp:Image>은 서버 컨트롤 인 반면 <img>은 HTML 컨트롤입니다. 서버 컨트롤에 viewstate가 활성화되어있는 한 포스트 백 중에 값을 유지합니다.

1

JavaScript를 통해 이미지의 URL을 변경하면 양식 값이 아니므로 포스트 백 중에 반환되지 않습니다. 따라서 사용자가 제안한 숨겨진 필드와 같은 양식 필드에 저장하지 않으면 영원히 손실됩니다.

0

이미지는 양식 필드가 아닙니다. 그것이 가치가 결코 서버에 다시 게시되지 않는 이유입니다.

asp : Image 컨트롤이 다시 게시하는 동안 값을 유지하는 이유는 viewstate (숨김 필드에 저장 됨)에 저장되어 있기 때문입니다. 단추를 클릭하면이 viewstate가 서버에 다시 게시되고 asp.net은 페이지 수명주기의 초기 이벤트에서 viewstate에서 이미지 컨트롤의 ImageUrl 속성을 설정합니다.

즉, 서버 측 양식 컨트롤 값은 다시 게시 한 후에 사용할 수 있습니다. 정상적인 html 양식 필드 (https://www.w3schools.com/html/html_form_elements.asp)를 사용하는 경우와 동일한 방식으로, Request.Form 컬렉션을 사용하여 값을 얻을 수 있습니다.

자바 스크립트를 사용하여 이미지의 src를 설정하고 있습니다. 원래의 viewstate가 아니기 때문에 분명히 다시 게시 할 가치가 없습니다. 숨겨진 필드를 사용하여 자바 스크립트를 사용하여 값을 설정해야합니다.이 값은 다시 게시 한 후에 사용할 수 있습니다.

관련 문제