Per il primo punto è stato abbondantemente discusso qui'

http://forum.html.it/forum/showthrea...readid=1119850



per il punto 2:

(sarebbe piu' normale prenderlo nell'evento selectedindex_changed ma se vuoi fai cosi')

gli elementi del dropdownlist hanno solo 2 attributi, value e text

quindi puoi mettere dentro value sia il valore della città, sia il valore della nazione, solo mettendo le 2 stringhe separate da un trattino (es. "RO-IT")

quindi la query ti verrà una roba cosi'

SELECT cod_citt+'-'+cod_naz AS Value, descr_citt AS Text FROM tabella_citt c
INNER JOIN tabell_naz n ON
c.cod_citt = n.cod_citt

poi, quando prendi il valore della selezionata fai cosi'

string citta = ddl.SelectedValue.Split("-")[0];
string nazione = ddl.SelectedValue.Split("-")[1];