>  기사  >  백엔드 개발  >  중복 제출을 방지하기 위한 asp.net 비활성화 버튼

중복 제출을 방지하기 위한 asp.net 비활성화 버튼

巴扎黑
巴扎黑원래의
2016-12-20 15:52:391771검색

방법 1:

버튼 전면 코드에 OnClientClick="this.disabled=true;" UseSubmitBehavior="False"를 추가하면 됩니다.

방법 2:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", this.GetPostBackEventReference(Button1) + ";this. 비활성화=true;");
}
참고: if (!Page.IsPostBack)에는 쓰지 마십시오. 그렇지 않으면 스크립트 오류가 발생합니다.



버튼을 클릭한 후 비활성화되도록 설정하는 과정, 즉 this.disabled=true입니다.
과정은 매우 간단하지만 약간의 트릭이 있습니다(이전에는 몰랐습니다). 이는 버튼 컨트롤에서 일반적으로 사용되지 않는 UseSubmitBehavior 속성으로, 페이지 클릭 후 버튼을 비활성화합니다. (양식)을 제출해야 하며 UseSubmitBehavior만 false로 설정해야 합니다. 그렇지 않으면 페이지(양식)가 제출되지 않습니다.

UseSubmitBehavior에 대한 MSDN의 설명은 다음과 같습니다.

UseSubmitBehavior 특성을 사용하여 Button 컨트롤이 클라이언트 브라우저의 제출 메커니즘을 사용할지 아니면 ASP.NET 포스트백 메커니즘을 사용할지 여부를 지정합니다. 기본적으로 이 속성의 값은 true이므로 Button 컨트롤이 브라우저의 제출 메커니즘을 사용하게 됩니다. false를 지정하면 ASP.NET 페이지 프레임워크는 페이지에 클라이언트 스크립트를 추가하여 양식을 서버로 보냅니다.

UseSubmitBehavior 속성이 false인 경우 컨트롤 개발자는 GetPostBackEventReference 메서드를 사용하여 Button의 클라이언트 포스트백 이벤트를 반환할 수 있습니다. GetPostBackEventReference 메서드에서 반환된 문자열에는 클라이언트 함수 호출의 텍스트가 포함되어 있으며 클라이언트 이벤트 처리기에 삽입될 수 있습니다.

예를 들어
Height="30px" OnClientClick="this.disabled = true;" UseSubmitBehavior="False"/>


UseSubmitBehavior가 false이면 출력 HTML에



__doPostBack('Issue1$doPublishButton','')은 asp.net에 의해 추가되었습니다. UseSubmitBehavior가 true이면 해당 문장이 없으며 페이지(양식)가 제출되지 않습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.