C'è un motivo per cui la sessione ASP.NET che termina e si riavvia interferirebbe con (impedire) l'evento SelectedIndexChanged che si attiva in una lista a discesa?La fine della sessione e il riavvio impediscono a DropDownList_SelectedIndexChanged di sparare
Il modulo sta postando indietro ma il mio punto di interruzione non viene colpito?
Tutto funziona perfettamente prima del riavvio della sessione.
Ecco l'asp per il controllo:
<asp:DropDownList ID="dlSort" runat="server" AutoPostBack="true"
onselectedindexchanged="dlSort_SelectedIndexChanged">
</asp:DropDownList>
Ecco una parte del codice:
protected void dlSort_SelectedIndexChanged(object sender, EventArgs e)
{
PopulateItems();
//Breakpoint above- not hit after session restarts, but hit prior to session end.
}
mi rimane una forma vuota in quanto non è sempre ripopolato ...
Grazie in anticipo,
M
Edit 1:
Ecco il codice in cui è popolato il controllo:
protected void Page_Load(object sender, EventArgs e)
{
Form.Action = Request.RawUrl;//Required as page is rewritten
if (!IsPostBack)
{
SetNoItemsMessage("");
PopulateSortDropDown();
PopulateItems();
}
}
private void PopulateSortDropDown()
{
clsProducts ops = new clsProducts();
DataTable dt = ops.GetProductSortDropDownData();
dlSortBy.DataSource = dt;
dlSortBy.DataBind();
dlSortBy.ClearSelection();
dlSortBy.SelectedValue = "1";
}
Edit 2:
per chiarire, i PopulateItems() metodo popola un ripetitore di dati e dovrebbe essere eseguito sulla modifica dell'indice del menu a tendina di ordinamento (dlSort_SelectedIndexChanged) - questo non sta accadendo anche se il postback è in corso.
Page_Load esegue un metodo che popola dlSort viene sempre eseguito.
Ho esaminato la pagina estesamente e tutto ciò che non è l'evento di modifica dell'indice si attiva.
Edit 3:
void Session_Start(object sender, EventArgs e)
{
InitialiseCommonSessionVariables();//This piece of code sets default values for session variables that are used in every case.
}
Esistono variabili di sessione utilizzate nel metodo PopulteItems()? – Mairaj
Grazie, sì ci sono variabili di sessione usate ma si accede alla sessione attraverso un oggetto che controlla una sessione inizializzata prima di accedere a singole variabili. Il problema principale è che dlSort_SelectedIndexChanged non si attiva affatto dopo che la sessione è andata persa e ristabilita. – Mack
Pubblica il codice che fa la popolazione iniziale del DDL. Cose che potrebbero essere rilevanti: dove è inserito il ciclo di vita della pagina (ad esempio Page_Load)? È popolato solo se IsPostBack è falso? ViewState è abilitato? I sintomi suggeriscono che il DDL non è stato inserito nel postback. – Joe