2016-10-19 3 views
0

bin Ich möchte die Informationen des Objekts auf SelectedIndexChanged, ich habe Bindung mit Listbox.Wie bekomme ich das gleiche Objekt auf SelectedIndexChanged Ereignis, das ich mit ListBox

forexample

listbox.bind=list of person object 

jetzt auf jeder Liste der listitem gibt es eine Person, Objekt, ich brauche diese Person Objekt auf SelectedIndexChanged Ereignis.

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

       //here is the compatibility issue 
       //how can i solve this 
       person ss = ListBox1.SelectedItem as Person; 
     } 
+0

Sie 'Liste [ListBox1.SelectedIndex] können sein muss' –

Antwort

0

Update: vergessen, dass ListBox1.DataSource nicht zwischen Postbacks beibehalten wird, so dass Sie es zu retten woanders brauchen werden, wie die Ansicht Zustand, wenn sie nicht ein großes Objekt.

es in den Ansichtszustand speichern Ihr Objekt Serializable

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     List<Person> persons = new List<Person>(); 

     persons.Add(new Person { Id = 1, Name = "Some Name" }); 
     persons.Add(new Person { Id = 2, Name = "Other Name" }); 

     ViewState["Persons"] = persons; 
     ListBox1.DataSource = persons; 
     ListBox1.DataTextField = "Name"; 
     ListBox1.DataValueField = "Id"; 
     ListBox1.DataBind(); 
    } 
} 

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    List<Person> persons = (List<Person>)ViewState["Persons"]; 
    Person person = persons[ListBox1.SelectedIndex]; 
} 
+0

ich Ihren Code auf selectedchange Ereignis überprüft haben Datasouce Nullwert haben. // DataSource ist null Liste Personen = (Liste ) ListBox1.DataSource; – bilal

+0

Sie haben Recht, ich habe die Antwort aktualisiert –

Verwandte Themen