2012-07-25 4 views
2

내 aspx 페이지에는 두 개의 fieldsets이 있습니다. 각 셀에는 <asp:Panel DefaultButton="..."><input type="submit"> 버튼이 있습니다. 여기에 축약 된 버전 ...여러 제출 버튼은 aspx에 포스트 백하지 않습니다 - 마지막 버튼 만

<div id="content">...</div> 
<asp:Panel runat="server" id="formPanel1" DefaultButton="form1SubmitButton"> 
    <fieldset> 
     <asp:TextBox runat="server" id="textbox1"/> 
     <asp:TextBox runat="server" id="textbox2"/> 
     <asp:Button runat="server" id="form1SubmitButton" OnClick="form1SubmitButton_OnClick"/> 
    </fieldset> 
</asp:Panel> 
<asp:Panel runat="server" id="formPanel2" DefaultButton="form2SubmitButton"> 
    <fieldset> 
     <asp:TextBox runat="server" id="textbox3"/> 
     <asp:TextBox runat="server" id="textbox4"/> 
     <asp:Button runat="server" id="form2SubmitButton" OnClick="form2SubmitButton_OnClick"/> 
    </fieldset> 
</asp:Panel> 

클릭 만 버튼 form2SubmitButton이 다시 게시합니다 제출, 다른 버튼을 마지막으로 수행 아무것도입니다. 위의 코드를 단순화했는데 각 폼 (Panel 포함)은 aspx에 등록 된 별도의 사용자 정의 컨트롤에 보관됩니다.

업데이트 : 마스터 페이지의 다른 필드 세트에있는 유효성 검사기 때문에 제출이 작동하지 않는다는 것을 알아 냈습니다. 해당 필드 세트는 사이트에 서명하기위한 것이므로 필요합니다. 생각?

+1

을 대답입니다. ID는 해당 맥락에서 고유해야합니다. 나는 "축약 된"것으로 의심된다. 어떤 경우 든 실제로 "포스트 백이 실행되지 않음"(그러나 포스트 백이 여전히 발생합니다) 문제는 컨트롤 트리가 올바르게 복원되지 않아서 발생합니다. 또한, "아무것도하지 않는다"는 것은 무엇을 의미합니까? 요청을 보냈습니까? __dopostback에 대한 호출에서 오류가 발생합니까? UpdatePanels이 있습니까? 유효성 검사가 있습니까? –

+0

이러한 각 필드 세트는 실제로 별도의 사용자 정의 컨트롤에 있습니다. 그래서 이드의 동일성은 아무런 차이가 없어야합니다. 나는이 예제를 위해 그것을 바꿀 것이다. 당신은 올바른 방향으로 컨트롤 트리에 대한 더 많은 정보를 찾을 수 있도록 설명해 주거나 올바르게 가르쳐 주시겠습니까? – bflemi3

+2

귀하의 검증 그룹이 제출하지 못하도록 확인하고 있는지 확인하실 수 있습니다. – PCasagrande

답변

1

그것은 HTML5 제약 검증과 관련이있다 밝혀졌습니다. Chrome에서 콘솔에서 오류가 발생하여 이것을 알아 냈습니다 An invalid form control with name='...' is not focusable. 이것은 this 게시물로 나를 이끌었다. 제출 버튼에 html5 속성 formnovalidate="formnovalidate"을 추가하면 모든 것이 잘 작동합니다 (* 크롬 v20.0.1132.57, firefox v14.0.1, IE9 v9.0.8112에서 테스트 됨).

그래서 요약하자면, 여기 ... 심지어/실행을 컴파일하지 말아야

<asp:Button runat="server" id="submit1" OnClick="submit1_OnClick" text="Submit" formnovalidate="formnovalidate"/> 
+0

흥미 롭 .. 숨겨진 데이터에만 숨겨진 컨트롤을 사용하십시오 ;-) –

2

PC에 언급 된대로 유효성 검사 그룹이 기본 버튼과 모든 유효성 검사기와 일치하는지 확인하십시오. 특히 로깅 부분에 적합합니다.

예 :

<asp:Panel ID="pnlUpdateInfo" runat="server" DefaultButton="btnUpdateInfo"> 

    <ASP:TEXTBOX id="txtZip" runat="server"></ASP:TEXTBOX> 
    <asp:RequiredFieldValidator id="reqvalZipSignUp" runat="server" 
    ControlToValidate="txtZip" ValidationGroup="btnUpdateInfo" />      

    <asp:Button ID="btnUpdateInfo" runat="server" ValidationGroup="btnUpdateInfo" /> 

</asp:Panel> 
+0

'유효성 검사 그룹이 기본 버튼과 일치 함'으로 혼란 스럽습니다. 설명 할 수 있습니까? – bflemi3

+3

예제를 추가했습니다. – Remy

+0

아, 그래, 그게 내가 생각했던 것입니다. 레미를 정교 해 주셔서 감사합니다 – bflemi3

관련 문제