Ουπς... WebForms. Έκανα ένα μικρό πείραμα και απ' ό,τι φαίνεται, ούτε το Add() ούτε το Insert() του DDL δουλεύει.
Πιο συγκεκριμένα, έφτιαξα μια βάση δεδομένων σε Access με έναν πίνακα "Cities" και ένα πεδίο "City" και το γέμισα πόλεις. Στη συνέχεια δημιούργησα ένα WebSite στο VS2005 και στο Default page έριξα ένα AccessDataSource Control και καθόρισα τις παραμέτρους του DataSource. Επίσης, έριξα στη φόρμα ένα DropDownList και καθόρισα τις παραμέτρους του Binding. Χρησιμοποίησα το Selecting event του AccessDataSource control για να προσθέσω, με Add() στο DDL, το στοιχείο "--City--" πριν φορτωθούν τα δεδομένα. Δε δούλεψε. Δε δουλεύει ούτε και το Insert(), αφού φορτωθούν τα δεδομένα. Το μόνο που μου έδωσε το επιθυμητό αποτέλεσμα είναι το παρακάτω snippet στο Load event της σελίδας:
DataSourceSelectArguments dssa=new DataSourceSelectArguments();
DataView dv = (DataView)AccessDataSource1.Select(dssa);
DropDownList1.Items.Add("--City--");
//
foreach (DataRowView drv in dv)
{
DropDownList1.Items.Add(drv["City"].ToString());
}
Υπάρχει κανείς με κάποια καλύτερη ιδέα;
Update:
Το ξανακοίταζα τώρα και βρήκα καλύτερη λύση. Απ' ό,τι φαίνεται δε μου πάει σήμερα η μέρα. Το Insert() δουλεύει και με απλό databinding. Απλά η εντολή:
DropDownList1.Items.Insert(0, "--City--");
πρέπει να εκτελεστεί μέσα στο DataBound event του DropDownList. Τι να πω. Sorry...
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!