我創建了一個自定義asp.net控件的一些字段有驗證控制與他們相關聯。 當我在頁面上聲明多個初始化時,就會出現問題。當我點擊一個初始化控件時,表單驗證發生在所有已聲明的其他控件上。由於這個問題,我無法提交表格。這裏是代碼asp.net自定義控件與表單字段驗證問題
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FinancialAdvisorHelp.ascx.cs" Inherits="FinancialAdvisorHelp" %>
<table width="316" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" >
<asp:RequiredFieldValidator
ID="RequiredFieldValidatorMember" runat="server"
ErrorMessage="Pleae enter member name. " ControlToValidate="TextBox_Name"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorEmail" runat="server" ErrorMessage="Please enter email. " ControlToValidate="TextBox_email"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidatorDarryEmail" runat="server"
ControlToValidate="TextBox_email" ValidationExpression=".*@.*\..*"
ErrorMessage="<br>
Invalid Email."> </asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td width="165"><p style="font-family:Palatino Linotype; font-size:12px; margin:0; padding:0;">Member Name*</p>
<asp:TextBox ID="TextBox_Name" runat="server" CausesValidation="True"></asp:TextBox>
</td>
<td width="151" align="right"><p style="font-family:Palatino Linotype; font-size:12px; margin:0 0 0 4px; padding:0; text-align:left;">E-Mail Address*</p>
<asp:TextBox id="TextBox_email" runat="server" CausesValidation="True"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2" align="right"><p style="font-family:Palatino Linotype; font-size:12px; margin:0; padding-right:50px;"><br />
Telephone Number</p>
<asp:TextBox id="TextBox_phone" runat="server" CausesValidation="True"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2"><p style="font-family:Palatino Linotype; font-size:12px; margin:0; padding:0;">Ask Darryl your question</p>
<asp:TextBox ID="TextBox_question" runat="server" Rows="7" Columns="48"
style="width:310px" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2"><p style="font-size:10px; margin:0; padding:0; float:left; width:240px; line-height:12px;">Note: you should receive a response within two (2) business days.<br />
*Required information.</p>
<asp:ImageButton ID="ImageButton_Advisor" runat="server" alt="submit"
width="63" height="18"
style="border:0; padding:0; margin:10px 0 0 0; float:right;" ImageUrl="./images/investments/submit.gif"
/>
<asp:HiddenField ID="HiddenFieldAdvisorEmail" Value="" runat="server" />
</td>
<tr><td colspan="2">
</td></tr>
</tr>
</table>
我多次調用該控制 單頁上例如 在頁面中。 當我嘗試提交控制之一。驗證也在第二個控件上執行。 如果第一個控件實例中的所有字段都是有效的,那麼它應該提交,但是由於第二個控件實例的驗證失敗,它不能提交。那是不可能的。 –
2010-03-11 20:57:44
哦,所以要提交頁面,第一個控件必須是有效的,但是第二個控件無效是可以的?如果是這樣,請將驗證控件關閉,或者查看是否可以將CausesValidation = False添加到第二個自定義控件。 – 2010-03-11 21:40:43
我覺得這聽起來更像是你有一個情況,用戶必須填寫第一個控件,然後如果他們想要,他們可以填寫第二個,(第三,第四,..?)。考慮一個簡單的重新設計,其中第二個(/下一個)控件是不可見的,直到他們表明他們想要填寫它。不可見(即Visible =「False」)標準ASP.NET控件未經過驗證(不確定您的自定義)。 – 2010-03-11 21:44:43