dopostback 페이지를 새로 고침하지만 이벤트 처리기를 잡지 않습니다.
-
21-12-2019 - |
문제
우선 일을 검색하여 하루 종일 쓸 수 있고 내 코드에 뭐가 잘못되어 작동하지 않는지 알아낼 수 없다는 것을 언급해야합니다 ...
내 코드에서 확인을위한 모달 대화 상자가 필요 하므로이 jquery 모달 대화 상자를 사용합니다. jQuery 확인
필요한 것은이 기능을 <asp:Button>
로 포함시키는 것입니다 ...
내 문제는 대화 상자 팝업 버튼을 클릭하지만 예 / 아니오 버튼이 작동하지 않고 두 대화 상자가 그냥 사라지는 것입니다.
또한 아래 코드를 사용하지만 __doPostBack()
는 전혀 아무 것도하지 않고 경고 ( '')와 같은 간단한 JS 코드를 완벽하게 실행합니다.
$("#complexConfirm").confirm({
title: "Redirect confirmation",
text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
confirm: function (button) {
__doPostBack('complexConfirm', 'OnClick');
},
cancel: function (button) {
return false;
},
confirmButton: "Yes",
cancelButton: "No"
});
.
I 검색 및 대화 상자 원인 요소는 양식 요소의 밖에 나오게되어 양식으로 되돌아 가게해야하지만 코드 아래에서 어떻게 시도하는지 모르고
$("#editEventModal").parent().appendTo(jQuery("form:first"));
.
다른 프로브는 JavaScript 이벤트로 대화 상자가없는 경우, JavaScript를 호출하기 위해 2 개의 버튼을 사용하고 __dopostback을 사용하는 경우 페이지를 새로 고칩니다.하지만 내 버튼 이벤트에옵니다. 코드 뒤에서, 나는 버튼을 onclick 이벤트를 호출하는 여러 가지 방법을 시도하지만, 페이지를 새로 고침하고 내 boonoon onclick mehtod를 호출하지 않습니다 !!!
버튼 선언은 다음과 같습니다.
<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />
.
이 두 가지 문제에 대해 어떻게해야합니까?
나는 많은 것을 검색하고, 솔루션이 아닌 나를 위해 일한다 !!!
솔루션을 감상하겠습니다, 감사합니다.
해결책
ASP의 선언을 알지 못하면 : 버튼을 여기에서 가장 잘 추측합니다.
버튼의 uniqueID를 사용해야합니다. 버튼의 "name"속성, ID가 아닙니다.
__doPostBack('<%=complexConfirm.UniqueID%>', '');
.
또한 버튼이므로 실제로 onClick
를 지정해야하지 않습니다.편집 : 나는 당신이 성취하려는 것을 시연하는 일을 보여줍니다. 필요에 따라 jQuery 확인에이를 맞춤 설정할 수 있습니다.
aspx :
<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />
.
자바 스크립트 :
<script>
$('#<%=btnTest1.ClientID%>').confirm({
text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
title: "Confirmation required",
confirm: function (button) {
// do something
__doPostBack('<%= btnTest1.UniqueID%>', '');
},
cancel: function (button) {
// do something
},
confirmButton: "Yes I am",
cancelButton: "No",
post: true
});
</script>
.
코드 뒤에 :
protected void btnTest1_Click(object sender, EventArgs e)
{
Response.Write("You clicked YES");
}
.
문제의 일부는 이벤트 이름이 버튼의 이름으로 지정되지 않았다고 생각합니다. 내가 생각하는 AutoEventWireUP를 사용하는 경우, 일치하는 이름으로 이벤트를 찾을 수 없기 때문에 이벤트가 트리거되지 않습니다.
그래서, 내가 한 첫 번째 일은 정전기를 제거했습니다. jQuery를 ASP.NET 생성 ID로 여전히 사용할 수 있습니다. 그런 다음 버튼의 이름이 btnTest1_Click
btnTest1
라는 이름이 지정되었는지 확인했습니다.
다른 버튼이 필요한지 확신 할 수 없습니다. 버튼이 제출하기 전에 확인하려는 것이 확인됩니다.