2012-07-25 42 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中註冊的單獨用戶控件中。

UPDATE:一些更多的研究,我已經想通了的提交沒有工作,因爲在主網頁上的另一個字段集驗證後。該字段用於登錄該網站,因此它是必需的。思考?

+1

這甚至不應該編譯/運行。在這種情況下,ID必須是唯一的。我懷疑過於「縮寫」。在任何情況下,「回發未運行」的真正常見問題(但回發仍然發生!)是由控制樹未正確恢復造成的。另外,「什麼都不做」是什麼意思?是否發送了請求?它是否在對__dopostback的調用中出錯?有沒有UpdatePanels?有沒有驗證? – 2012-07-25 20:13:14

+0

這些字段集中的每一個實際上都在單獨的用戶控件中。所以ID是相同的不應該有任何區別。這個例子我會改變它。你能解釋一下,還是指向正確的方向,找出更多關於控制樹沒有正確恢復的信息? – bflemi3 2012-07-25 20:18:34

+2

您可能希望檢查以確保您的驗證組不會阻止其中一個提交。 – PCasagrande 2012-07-25 20:21:03

回答

1

原來它與HTML5約束驗證的事情。我明白了這一點,因爲在Chrome中,從控制檯,我得到錯誤An invalid form control with name='...' is not focusable。這導致我this後。我將html5屬性formnovalidate="formnovalidate"添加到提交按鈕,並且一切正常(*在Chrome 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

有趣的..我想,只使用隱藏的數據隱藏控制;-) – 2012-07-26 20:02:36

2

隨着PCasagrande提到,請確保您的驗證組匹配默認按鈕和所有驗證器。特別爲您的日誌記錄部分。

例子:

<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 2012-07-26 15:18:15

+3

我已經添加了一個示例 – Remy 2012-07-26 20:33:27

+0

啊,是的,這就是我以爲你的意思。謝謝闡述雷米 – bflemi3 2012-07-26 20:34:17