webForumDet fria alternativet

validera den dropplist

10 svar · 536 visningar · startad av annasmurf

annasmurfMedlem sedan mars 2006237 inlägg
#1

hej!

Jag skulle vilja vet vad det finns för möjligheter att validera en droplist, då man hämtar data från en databas?
så här ser den ut nu

<td vAlign="middle" width="240" height="20">Påstingingsort&nbsp;
<asp:requiredfieldvalidator id="validatorPåstigningsort" runat="server" Display="Dynamic" ControlToValidate="påstigningsort"><img src="dimg/error.gif" border="0" alt="" /></asp:requiredfieldvalidator>
</td>
<td width="240">
	<asp:DropDownList Visible="true" id="påstigningsort" runat="server" AutoPostBack="false" Enabled="True" 
	DataTextField="Stad" DataValueField="Stad" Width="222px"></asp:DropDownList>
	</td>
erkaMedlem sedan dec. 19996 522 inlägg
#2

Vad ska du validera på, att något är valt ? Du kan ju antingen köra en reg.exp validator som kollar mot ett mönster, eller att du kollar mot en tom sträng med req.field validator

annasmurfMedlem sedan mars 2006237 inlägg
#3

jag använder redan req.field validator, men eftersom man hämtar värdet ur en databas så är den ju inte tom och går alltid igenom, hur får man in att det ska stå "välj här" och inte ett värde från databasen?

cyprysMedlem sedan dec. 20003 563 inlägg
#4

I stil med detta för att få en post överst (index 0) där value="".

dinDropList.items.insert(0, new Listitem("Välj här", ""))
annasmurfMedlem sedan mars 2006237 inlägg
#5

Hej cyprys!

vad menar du, var ska jag skriva in
dinDropList.items.insert(0, new Listitem("Välj här", ""))

cyprysMedlem sedan dec. 20003 563 inlägg
#6

Där du förmodligen skrivit något i stil med:

pastigningsort.datasource = ...
pastigningsort.databind()

pastigningsort.items.insert(0, new Listitem("Välj här", ""))

Eller använder du någon annan metod möjligtvis?

DinoMedlem sedan sep. 20011 914 inlägg
#7
<asp:DropDownList ID="ddl" [B]AppendDataBoundItems="true"[/B] runat="server">
   <asp:ListItem Text="(Välj)" Value="" />
</asp:DropDownList>

<asp:RequiredFieldValidator 
   ID="RequiredFieldValidator1" 
   runat="server" ErrorMessage="*" 
   ControlToValidate="ddl" />
annasmurfMedlem sedan mars 2006237 inlägg
#8

hej cyprys!

jag använder koden i första tråden, se ovan, kolla den

echoSweMedlem sedan nov. 20041 189 inlägg
#9

Någon som har sett Lost In Translation?

Den är faktiskt bra...

För att hålla mig till topic så förstår jag inte anledningen till att du skulle vilja validera en drop-down-list? För den är väl alltid, per definition valid?

Sedan snackade du något om att man ska ha "välj här" högst upp, och det är ju bara kolla om objDdl.SelectedIndex = 0 och om det är det så har man ju valt "Välj här" som inte har ett värde, och därmed inte är valid?

Cyprus berättar bara hur man lägger till en ListItem (Item) i listan efter att du har hämtat datan från databasen och bundit den.

cyprysMedlem sedan dec. 20003 563 inlägg
#10

För att hålla mig till topic så förstår jag inte anledningen till att du skulle vilja validera en drop-down-list? För den är väl alltid, per definition valid?

Om man validerar med en RequiredFieldValidator betyder det att value <> "" på vald item i listan. Lägger man in en listItem först i lista med value = "" och användaren inte väljer något alternativ som är valid, kommer listan inte vara valid med avseende på RequiredFieldValidatorn. Man tvingar alltså användaren att byta värde i listan, vilket efterfrågades.

Sedan snackade du något om att man ska ha "välj här" högst upp, och det är ju bara kolla om objDdl.SelectedIndex = 0 och om det är det så har man ju valt "Välj här" som inte har ett värde, och därmed inte är valid?

Eller så använder man den inbyggda valideraren som trådskaparen skrev i första posten. Om man ska använda din metod att alltid kolla .selectedIndex .text etc så kan man ju lika gärna skrota alla formvaliderare eftersom det går att göra cb. Då går man ifos misste om den automatiska kindof-try-client-then-server valideringen som är rätt smidig.

Cyprys berättar bara hur man lägger till en ListItem (Item) i listan efter att du har hämtat datan från databasen och bundit den.

Yupp, vilket efterfrågades samt löser trådskaparens ursprungliga problem.

edit
F.ö. viftar jag med ena ögonbrynet åt Dino's post. ;) Det finns många genvägar till det perfekta ljudet.

echoSweMedlem sedan nov. 20041 189 inlägg
#11

Jag är helt med på ditt resonemang cyprys. Jag bara skrev vad jag gjorde för att anna inte verkade fatta vad du menade.

137 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)