Hejsan Det är ju list2 du vill validera, inte list1. Alltså är det list2 som ska trigga validerings-eventet.Verifieringskontroll
Jag är nybörjare på ASP.Net och försöker trixa lite med verifieringskontroller. Jag följer en bok där en övning är att göra två listboxar med samma val i varje. Det går ut på att välja samma i båda boxarna. Väljer man, som jag har, olika färger kommer ett felmeddelande där det står att jag valt olika.
Nu kommer problemet.
Tanken är att jag ska kunna markera i första boxen och sedan i andra boxen och har jag valt olika ska meddelandet komma upp. nu kommer meddelandet upp när jag valt i första boxen och ej hunnit välja i andra. Hur kan man fixa detta.
Här kommer koden:
<Code>
<%@ Page Language="VB" %>
<script runat="server">
Sub Submit(obj as Object, e as Eventargs)
if Page.IsValid then
lblMessage.Text = "Grattis, du har valt samma färg."
else
lblMessage.Text = "Försök igen"
end if
End Sub
</script>
<html>
<body>
<form runat="server">
<table border="1">
<tr>
<td>
<asp:ListBox id="list1" runat="server">
<asp:ListItem>Blå</asp:ListItem>
<asp:ListItem>Grön</asp:ListItem>
<asp:ListItem>Gul</asp:ListItem>
<asp:ListItem>Röd</asp:ListItem>
</asp:ListBox>
</td>
<td>
<asp:ListBox id="list2" runat="server">
<asp:ListItem>Blå</asp:ListItem>
<asp:ListItem>Grön</asp:ListItem>
<asp:ListItem>Gul</asp:ListItem>
<asp:ListItem>Röd</asp:ListItem>
</asp:ListBox>
</td>
</tr>
</table>
<asp:CompareValidator Runat="server" Display="Dynamic" ControlToValidate="list1" ControlToCompare="list2" Type="String" Operator="Equal" ErrorMessage="Du har ej valt samma färg." />
<br>
<br>
<asp:Button id="btSubmit" runat="server" Text="Submit" OnClick="Submit" />
<br>
<br>
<asp:Label id="lblMessage" Runat="server" />
</form>
</body>
</html>
</Code>
Tacksam för svarSv: Verifieringskontroll
Alltså:
ControlToValidate="list2"
och
ControlToCompare="list1"
Valideringen kommer ju förstås att trigga om du t.ex väljer från list2 först utan att ha valt något i list1.