我创建了一个自定义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