T trexter Medlem sedan mars 2002 1 889 inlägg Frågan 25 mars 2006 14:32 #1 Jag använder denna kod för att lägga till ett alternativ i en DropDownList.
Hur gör jag om jag vill att alternativet ska "renderas markerat" ("selected") på sidan?
this.drop_kund.Items.Add(new ListItem(dr1["KundNamn"].ToString(), dr1["KundID"].ToString()));
:)
T trexter Medlem sedan mars 2002 1 889 inlägg Alltså:
while (dr1.Read())
{
if (Int32.Parse(dr1["KundID"].ToString()) == intArendeKund)
{
this.drop_kund.Items.Add(new ListItem(dr1["KundNamn"].ToString(), dr1["KundID"].ToString()));
//??????
}
else {
this.drop_kund.Items.Add(new ListItem(dr1["KundNamn"].ToString(), dr1["KundID"].ToString()));
}
}
D Dino Medlem sedan sep. 2001 1 914 inlägg bool b = (Int32.Parse(dr1["KundID"].ToString()) == intArendeKund) ? true : false;
ListItem l = new ListItem(dr1["KundNamn"].ToString(), dr1["KundID"].ToString());
l.Selected = b;
this.drop_kund.Items.Add(l);
T trexter Medlem sedan mars 2002 1 889 inlägg Dino, det verkar fungera men låt mig fråga en annan sak.
<option value="2">
Vilken egenskap ska användas för att få ut värdet "2" om användaren valt alternativet. Är det inte SelectedValue? :o
Jag kör nämligen en Insert och en av parametrarna är:
myCommand.Parameters.Add("@ArendeKundNr", SqlDbType.Int, 4).Value = drop_kund.SelectedValue.ToString();
Valen som renderas i HTML-koden är
<option selected="selected" value="2">svantes livs</option>
<option value="3">börjes bilar</option>
<option value="7">hejh</option>
<option value="8">hej</option>
Men ändå sparas bara värdet "2" i databasen - även om man valt t ex "hejh"
T trexter Medlem sedan mars 2002 1 889 inlägg Någon som förstår detta konstiga fel? :)
D Dino Medlem sedan sep. 2001 1 914 inlägg Antingen har du inte !IsPostBack eller laddar du om datan innan du hunnit ta ut värdet.
Tänk på att Page_Load sker före en kontrolls event.
void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
BindData();
}
private void BindData()
{
//Fyll dropdownlisten
}
void InsertKnapp_Click(object sender, EventArgs e)
{
...
myCommand.Parameters.Add("@ArendeKundNr", SqlDbType.Int, 4).Value = drop_kund.SelectedValue;
...
BindData();
}