Cicli pagina - Giusto modo dati di input al database
Domanda
Ho una pagina che ha un paio di caselle di testo e una DropDownList. Quando un utente connesso apre questa pagina le scatole sono riempiti con dati che ha ingresso prima, può modificare i dati e aggiornarlo premendo un pulsante di aggiornamento. V'è, inoltre, che dropdownlist che ha un dato popolate in modo dinamico per lui a scegliere.
Qual è il modo migliore per rendere questa pagina lavoro. Dove nei cicli pagina faccio a popolare le forme e dove devo inserire i dati al DataTable.
Al momento sto popolando i dati sul PreRender ma DropDownList sul PreInit. Ho un gestore di eventi pulsante per fare l'aggiornamento sul DataTable. Il problema è che i pasticci AutoPostBack il backup dei dati in DropDownList perché il suo modo dinamico popolate, come potrei fare fissando questo?
Soluzione
Ecco quello che seguo nella maggior parte dei miei casi
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitDropdDownListes();
LoadDataFromDataBase();
}
}
void InitDropdDownListes()
{
// fill drop down boxes
}
void LoadDataFromDataBase()
{
// load from database
}
protected void OnDropdownListChanges(object sender, EventArgs e)
{
// reload the new data from database
LoadDataFromDataBase();
}
protected void btnSave_Click(object sender, EventArgs e)
{
// Save to database
}