utilizzando FormView per inserire
Domanda
Ho un controllo formview, e l'evento ItemCreated
, sto "priming" alcuni dei campi con valori di default.
Tuttavia, quando cerco di usare il formview per inserire, prima della manifestazione ItemInserting
viene chiamato, per qualche ragione che definisce ItemCreated
prima. Che i risultati nei campi di essere sovrascritto con i valori di default a destra prima l'inserto accada.
Come faccio a farlo di non chiamare l'evento ItemCreated
prima dell'evento ItemInserting
?
Soluzione
è necessario utilizzare formview Databound evento invece di formview evento ItemCreated per impostare i valori, tenta come
protected void frm_DataBound(object sender, EventArgs e)
{
if (frm.CurrentMode == FormViewMode.Edit)//whatever your mode here is.
{
TextBox txtYourTextBox = (TextBox)frm.FindControl("txtYourTextBox");
txtYourTextBox.Text// you can set here your Default value
}
}
Controllare anche questa discussione del problema similare FormView_Load sovrascrittura C # ASP.NET
Altri suggerimenti
Non è possibile modificare l'ordine in cui gli eventi del fuoco. Tuttavia, probabilmente si dovrebbe avvolgere il codice che imposta i valori di default all'interno !IsPostBack
in modo che esso non ripristina i valori per esempio:
protected void FormView_ItemCreated(Object sender, EventArgs e)
{
if(!IsPostBack)
{
//Set default values ...
}
}
Prova a controllare il CurrentMode proprietà della vista modulo.
void FormView_ItemCreated(object sender, EventArgs e)
{
if (FormView.CurrentMode != FormViewMode.Insert)
{
//Initialize your default values here
}
}