GimboMedlem sedan dec. 20001 630 inlägg Tja,
har en funktion där jag lägger in 2 värden i en arraylist så här:
al.Add(firstName + " " + lastName);
al.Add(Email);
sedan har jag en funktion där jag i en dropdown vill endast visa first name och lastname men just nu så blir det som så att firstname och last name hamnar på en rad i dropwdownen och email på en annan så det ser ut sp här:
pelle larsson
pelle@larsson.com
så här ser koden ut för att populera dropdownen:
ArrayList al = this.GetUsers("");
for (int i = 0; i < al.Count; i++)
{
ListItem item = new ListItem(al[i].ToString());
ddlOU.Items.Add(item);
}
jag vill att det endast visas pelle larsson i dropdownen, för när jag seadn väljer peller larsson så skall det via en postback fyllas i ett formulär med namn och email i 2olika textfält och där har jag gjort så här:
private void ddlOU_SelectedIndexChanged(object sender, EventArgs e)
{
txtUserName.Text = ddlOU.SelectedValue;
//txtUserEmail.Text =
}
vet inte hur det ska se ut för att emailadressen hamnar i textfältet?
hoppas ni förstår vad det e jag vill göra?
butikoMedlem sedan jan. 2007173 inlägg Du har nog lite fel approach här, namn och email kommer ju alltid att ligga om varandra... om du ska ha en array med användare så kan du istället skapa en lista med objekt där varje objekt är en användare med sina respektive egenskaper.
Men villl du ha ett snabbhack så kan du ju alltid kolla om raden innehåller ett @-tecken, typ så här:
if (!al[i].ToString().Contains("@"))
{
ListItem item = new ListItem(al[i].ToString());
ddlOU.Items.Add(item);
}
GimboMedlem sedan dec. 20001 630 inlägg thx det funka, men hur gör jag får att i postbacken få email adressen visat i textfältet?
GimboMedlem sedan dec. 20001 630 inlägg ingen som vet hur jag kan få värdet från al.add(Email); till min postback?
txtUserEmail.Text = al.add(Email); fungerar ju inte, någon som vet hur jag kan få det värdet assignat till txtUserEmail.Text i min postback?
ordellMedlem sedan sep. 200278 inlägg Eftersom du lägger email EFTER namnet i ArrayListen så tar du ju lämpligast txtUserEmail.Text = al[i+1] ...
GimboMedlem sedan dec. 20001 630 inlägg funka inte...
har gjort så här i min postback
txtUserName.Text = ddlOU.SelectedValue;
ArrayList al = this.GetUsers_Active("");
for (int i = 0; i < al.Count; i++)
{
ListItem item = new ListItem(al[i].ToString());
if (al[2].ToString() == txtUserName.Text)
{
txtUserEmail.Text = al[1].ToString();
}
}
men jag får alltid upp den första personens email adress i email fältet? det är alltså samma emailadress som visas spelar ingen roll vilken användare jag väljer, vad gör jag fel?
butikoMedlem sedan jan. 2007173 inlägg Du har ju hårdkodat ditt index:
txtUserEmail.Text = [B]al[1].[/B]ToString();
al[1] är ju andra positionen i din array (eftersom index börjar på 0) och där ligger ju alltid första personens mailadress med din lösning. Dessutom har du ett hårdkodat index även i din if runt...