Jag bloggar numera på http://blog.dileno.com ».

Prenumerera på RSS

Undvik att RequiredFieldValidator hindrar andra formulär från att skickas

Om du har flera formulär på samma ASP.NET-sida och använder dig av RequiredFieldValidator så är sannolikheten stor att valideringen körs för samtliga formulär på sidan. Detta innebär att formulär helt enkelt inte skickas.

Detta kan man undvika genom att använda sig av ValidationGroup-egenskapen på sina kontroller och på så sätt tala om vilka valideringskontroller som är knutna till vilka formulär. Så här:

<asp:textbox id="tb1" runat="server" />
<asp:requiredfieldvalidator id="rfv1" ... validationgroup="Group1" runat="server"/>

Varje grupp av formulärfält ska tillhöra olika valideringsgrupper.

Notera också att en knapp som inte tillhör någon valideringsgrupp kommer att validera alla kontroller som inte heller tillhör någon valideringsgrupp.

Här är ett mer komplett exempel med de två valideringsgrupperna UserInfo och Search som används för att åtskilja vilket formulär som skickas vid vilket knapptryck:

Namn: <asp:textbox id="tbName" runat="server" />

<asp:requiredfieldvalidator
id="rfvTbName"
controltovalidate="tbName"
display="Dynamic"
text="Skriv in namn."
validationgroup="UserInfo"
runat="server" />

<asp:button
id="btnSubmit"
text="Skicka"
validationgroup="UserInfo"
runat="server" />

Sök: <asp:textbox id="tbSearch" runat="server" />

<asp:requiredfieldvalidator
id="rfvTbSearch"
controltovalidate="tbSearch"
display="Dynamic"
text="Fyll i en sökterm."
validationgroup="Search"
runat="server" />

<asp:button id="btnSearch"
text="Sök"
validationgroup="Search"
runat="server" />

Till sidhuvudet

Clicky Web Analytics