2011-03-30 4 views
1

C#에서 click 이벤트가있는 버튼이 있습니다. 이것은 잘 작동합니다. 그러나 페이지를 새로 고치기 위해 F5 키를 누르면 버튼 이벤트가 발생하는 것으로 나타났습니다. 이것은 F5를 누를 때마다 발생합니다. if (page.IsPostBack)와 메소드가 여전히 실행되는 경우를 추가했습니다.asp.net 새로 고침 버튼 이벤트가 실행 중입니다.

F5 새로 고침 버튼을 클릭 할 때이 방법을 중지하는 방법이 있습니까?

감사합니다.

http://pastebin.com/9ycNraaT

+0

당신은 버튼 선언으로 코드를 추가 할 수 있다면? –

+0

님이 링크를 확인하십시오. – Funky

+0

내 솔루션을 사용해 보셨습니까? –

답변

0

한 번 실행해야하는 페이지가있는 경우 동일한 메서드가 여러 번 실행되지 않도록 논리를 구현해야합니다. 의사 코드에서 : 그것은 존재하지 않는 및 executeMethod()에 설정되어있는 경우

if (canExecuteMethod()) { 
    executeMethod(); 
} else { 
    displayMessageThatMethodCannotBeExecuted(); 
} 

예를 들어, 당신은 false를 반환하는 canExecuteMethod()와 세션 변수를 확인할 수 있습니다 물론 사용의

function canExecuteMethod() { 
    return Session["methodIsExecuting"] == null 
     || Session["methodIsExecuting"] == false; 
} 

function executeMethod() { 
    Session["methodIsExecuting"] = true; 
    // ... 
} 

세션 변수에는 제한이 있으므로 데이터베이스 또는 AppSettings 변수를 대신 사용하는 것이 좋습니다.

0

도중입니다. 새로 고침 후 버튼 (및 데이터 게시)을 클릭하면 동일한 데이터가 전송됩니다.

1

추가/업데이트 코드 뒤에 Response.Redirect("Your page ")을 사용해보세요. 그것은 좋은 습관이 아니지만 그것은 당신을 도울 것입니다.

1

경우 (! page.IsPostBack)

NOT (page.IsPostBack)

+0

버튼을 클릭 할 때 및 새로 고침을 클릭 할 때 다시 게시가 true로 설정되므로이 기능이 작동하지 않습니다. 나는이 방법이 프리 렌더 바인딩에 매우 유용하다는 것을 발견했다. – Funky