2011-01-05 4 views
1

특정 변수를 보내는 페이지에 하이퍼 링크가 있습니다. Default.aspx? var1 = x & var2 = yASP.net 이미지 버튼 문제

그런 다음 동적으로 ImageButton을 만듭니다. My ImageButton에는 자체 이벤트가 있습니다. ImageButton이 하이퍼 링크에서 보낸 값을 상속하는 것으로 보입니다. 내가 이미지 버튼을 오른쪽 클릭하면 뷰는 다음과 같이 Default.aspx? var1 = x & var2 = y를 가리키며 브라우저를 통해 속성이됩니다. 그런 다음 뷰 상태를 해제하려고 시도했습니다.

또한 url 변수가 전송되지 않도록 PostBackUrl을 지정하려고했습니다. 그런데 사건이 발생하지 않습니다.

어떤 방법이 있습니까?

답변

1

ASP.NET의 양식에 대한 포스트 백 URL은 항상 폼이 원래로드 된 URL과 같습니다. 따라서 쿼리 문자열이있는 하이퍼 링크에서 페이지를로드 한 다음 해당 페이지 (예 : ImageButton)에서 다시 게시 컨트롤을 사용하면 쿼리 문자열을 포함하여 원래로드 된 URL과 동일한 URL에 항상 게시됩니다.

사용중인 ASP.NET 버전에 따라 다르게 적용되는 포스트 백 URL을 변경하는 방법은 여러 가지가 있지만, 2.0 이하이면 자바 스크립트 여야합니다. 문제에 대한 답변을 찾으려면이 문제를 구체적으로 검색하십시오 (다시 게시 URL 또는 양식 작업을 asp.net으로 변경).

덜 우아하고 다른 해결책은 쿼리 문자열을 사용하여 초기로드 한 후에 쿼리 문자열이없는 페이지를 자신에게 리디렉션하는 것입니다.

포스트 백에서 거의 항상 원하는 동작 인 쿼리 문자열을 무시할 수도 있습니다. 따라서 대부분의 경우 이는 외관상의 문제입니다. 예 : 당신의 코드에서 ...

if (!Page.IsPostback) { 
// check for querystring data and do stuff if there, otherwise ignore it 
} 
1

ASP.NET의 기본 동작입니다. ImageButton은 이벤트 처리기의 실행을 유발하기 때문에 연결된 하이퍼 링크는 동일한 페이지가됩니다.

왜이 점이 중요합니까?