簡體   English   中英

從C#背后的代碼啟用/禁用驗證

[英]enabling/disabling validation from code behind c#

我為表單編寫了一些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#中用於攔截dropdownlist值的代碼:

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”時,另一個下拉列表被啟用。 我也想激活驗證控件。 我為這兩個驗證分配了一個驗證組,但是我不確定如何一次“啟用”它們。 有什么幫助嗎? 非常感謝你。

您可以使用“ Validation controls Enabled屬性來enabledisable它們。

嘗試這個:

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

       //add these two statements to enable
       PivaSize.Enabled=true;
       PivaErrata.Enabled=true;
    }
    else
    {
        ddlProv.SelectedIndex = 0;
        ddlProv.Enabled = false;

       //add these two statements to disable
       PivaSize.Enabled=false;
       PivaErrata.Enabled=false;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM