Bueno lo que yo normalmente hago es que cuando cargo los valores al listbox pongo el ID como parte de la propiedad value en el objeto en otras palabras algo similar a esto cuando ves el HTML code...
[b]<asp:ListBox ID="ListBox1" runat="server"
onselectedindexchanged="ListBox1_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="1">Villareal</asp:ListItem>
<asp:ListItem Value="2">Desampa</asp:ListItem>
<asp:ListItem></asp:ListItem>
</asp:ListBox>[/b]
Ahora bien... una forma de trabajar al rededor de esto... y es solo una idea... seria... cargar los valores de la base de datos a un listItem primero. (El codigo que pongo esta en C# pero como te digo es solo una idea y a mi me funciona bien.)
[b
]ListItem lista
= new ListItem
() lista.value = _dsTablas.Tables("Cursos").Columns(1).ToString;
lista.text=_dsTablas.Tables("Cursos");
y luego de que has cargado todos los valores a la lista entonces solo haces
ListBox1.Items.Add(lista);
[/b]
Y luego para estraer los valores como tu quieres solo tienes que
[b]manipular el ListBox1.Text si lo que quieres es el ID
y lista.SelectedItem.ToString(); si lo que quieres es el nombre del curso. [/b]
Saludos.
Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech