从c#后面的代码启用/禁用验证

时间:2013-12-02 08:09:35

标签: c# asp.net validation

我为表单编写了一些asp代码。其中一个字段必须具有3种类型的验证,其中2个已启用,另外2个必须“启用”,只有从下拉列表中选择了特殊值。 我该如何完成这项任务? 我默认禁用了2个额外的验证,并且喜欢在下拉列表特定选择上重新激活。

我在这里向您展示我的代码。 ASP.NET代码:

<tr>
<td class="style1">
<asp:Label ID="LabelPiva" runat="server" Text="Partita IVA" meta:resourcekey="LabelPiva" Font-Bold="True" />
</td>
<td>
<asp:TextBox ID="pivaTextBox" runat="server" Text='<%# Bind("piva") %>' 
    MaxLength="50" Width="400px" />



<asp:RequiredFieldValidator ID="RequiredPiva" runat="server" 
    ControlToValidate="pivaTextBox" 
    ErrorMessage="<%$ Resources:Resource, CampoObbligatorio %>" Display="Dynamic" 
    CssClass="little_text" />
<asp:CustomValidator ID="PivaEsistente" runat="server" 
    ErrorMessage="Partita IVA esistente nel database" meta:resourcekey="PivaEsistente" 
    ControlToValidate="pivaTextBox" CssClass="little_text" Display="Dynamic" 
    onservervalidate="PIVAEsistente_ServerValidate"></asp:CustomValidator>

<asp:RegularExpressionValidator ID="PivaSize" runat="server"
    ControlToValidate="pivaTextBox" CssClass="little_text" Display="Dynamic"
    ErrorMessage="Controllare la lunghezza della partita iva. 11 caratteri e solo numeri." 
    ValidationExpression="^[0-9]{11}$" Enabled="False" ValidationGroup="soloItalia">
    </asp:RegularExpressionValidator>

<asp:CustomValidator ID="PivaErrata" runat="server" 
    ErrorMessage="Partita IVA non corretta. Controllare le cifre." meta:resourcekey="PivaErrata" 
    ControlToValidate="pivaTextBox" CssClass="little_text" Display="Dynamic" 
    onservervalidate="ValidatePI"  Enabled="False" ValidationGroup="soloItalia"></asp:CustomValidator>

</td>
</tr>

只有当dropdownlist达到“it”值时,必须触发具有id PivaErrata的CustomValidator和带有id PivaSize的RegularExpressionValidator。 这是c#中的代码隐藏,用于拦截下拉列表的值:

protected void nazioneDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList)sender;
    DropDownList ddlProv = (DropDownList)FormUser.FindControl("provinciaDropDownList");



    if ("it".Equals(ddl.SelectedValue))
    {
        ddlProv.Enabled = true;


    }
    else
    {
        ddlProv.SelectedIndex = 0;
        ddlProv.Enabled = false;
    }

}

正如您所看到的,当在国家/地区下拉列表中触发特定值“it”时,会启用另一个下拉列表。 我也想激活验证控件。 我为这两个验证分配了一个验证组,但我不确定如何立即“启用”它们。 有帮助吗? 非常感谢你。

1 个答案:

答案 0 :(得分:1)

您可以使用Enabled的{​​{1}}属性Validation controlsenable

试试这个:

disable