Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.
Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.
du har så rätt så.....det finns ju även FindByText
Under vissa förutsättningar i och för sig, har man ett index fält i databasen som matchar dropdownlisten är det kannon att göra på detta sätt, annars rätt värdelöst :)
red: självklart är det SelectedIndex jag menar och inte SelectedValue :)
Men varför inte göra på det enklaste sättet?, om han nu ska selecta med ett Value.
dropdownlist.SelectedValue="22";
SelectedValue har ju både Get och Set.
Nu har jag inte VS.NET installerat på denna dator, så jag kan inte kolla din kod. Men är du säker på att du letar upp den item som har värdet 22 och sätter den posten som markerad.
om jag tolkar koden rätt ihuvudet, så tar du posten som är markerad och ändrar dess värde till 22, det är inte riktigt samma sak :)
Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.
Spelar ingen roll vilken method man använder så måste man kontrollera om dropdownlistan finns. Eftersom alla kan ge detta fel. Du behöver dock inte instansiera några items objekt, eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"
Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.
om jag tolkar koden rätt ihuvudet, så tar du posten som är markerad och ändrar dess värde till 22, det är inte riktigt samma sak
Nepps ;)
The SelectedValue property can also be used to select an item in the list control by setting it with the value of the item. If no items in the list control contain the specified value, a System.ArgumentOutOfRangeException is thrown.
Jag använder den på min applikation med dropdownlistor. för att selecta sparade svar.
Men det är under förutsättning att man har .net 1.1, SelectedValue finns inte i .net 1.0 (men vem har 1.0 nuförtiden)
The SelectedValue property can also be used to select an item in the list control by setting it with the value of the item. If no items in the list control contain the specified value, a System.ArgumentOutOfRangeException is thrown.
Där ser man, man lär sig något nytt varje dag, riktigt smidig lösning, förutom möjligheten till runtime fel, men gör man som du så har man ju oftast en item med value 22, så då är det smart.
Under förutsättning att dropdownlistan finns och är fylld förstås. Annars får du först instansiera Items-objektet och kontrollera att det finns/är fyllt och därefter köra FindByValue & Selected.
Spelar ingen roll vilken method man använder så måste man kontrollera om dropdownlistan finns. Eftersom alla kan ge detta fel. Du behöver dock inte instansiera några items objekt, eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"
Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.
Det säger väl sig självt att man inte kan köra metoder på ett fantasiobjekt, men jag menar att man får felmeddelande (vid run-time) om objektet inte är fyllt, dvs ej databundet. Items (som inte behöver instansieras - du har rätt, fel ordval av mig) kan inte retunera några itemcollections (eller vilket objekt det nu representerar) om dropdownlisten inte är fylld och databunden.
men jag menar att man får felmeddelande (vid run-time) om objektet inte är fyllt, dvs ej databundet
Nu har jag inte testat så du kanske har rätt, men varför skulle jag få det?
Om jag inte har någon data i min dropdownlista så har jag inga Items objekt, om jag då gör en FindByValue/FindByText så borde den returnerar NULL och inte något felmeddelande?
Jag har ju aldrig testat, men vore otroligt korkat av MS att göra en Exception då, eftersom man ändå får tillbaka NULL om valuet/texten inte finns.
Varför läser ni inte vad jag har skrivit så fall :(
eftersom detta objekt instansieras när dropdownlistan skapas, så finns inte värdet med så får man bara null tillbaka, vilket gör att exemplet inte är så jättelyckat, eftersom det kan ge run-time fel. (du kan ju inte få propertien "selected" på ett null objekt"
Men det betyder inte att du får ett exception om du gör en FindByValue() när dropdownlistan är tom.
Alltså gör man så jag tidigare skrivit:
Däremot så kan man lägga FindByValue/FindByText i en if-sats och kolla om objectet blir null eller ett objekt, blir det ett objekt så sätter man det objektet till selekted.