Controlli PreviousPage null

venerdì 27 luglio 2012 - 19.03
Tag Elenco Tags  C#  |  .NET 4.0

Gemini Profilo | Expert

Ciao a tutti ho un formi di ricerca nella pagina default.aspx:
<div class="formCerca"> <asp:RadioButtonList ID="rblContratto" CssClass="input" RepeatDirection="Horizontal" RepeatLayout="Flow" TextAlign="Right" runat="server"> <asp:ListItem Value="" Text="Tutti " Selected="True"></asp:ListItem> <asp:ListItem Value="affitto" Text="Affitto "></asp:ListItem> <asp:ListItem Value="vendita" Text="Vendita "></asp:ListItem> </asp:RadioButtonList> <asp:DropDownList ID="ddlRegione" CssClass="input" runat="server"> </asp:DropDownList> <asp:Button ID="btCerca" CssClass="submit" Text="Cerca immobili »" ValidationGroup="vgCerca" PostBackUrl="cercaonline.aspx" CausesValidation="true" runat="server" />


Alla pagina è associata una masterpage:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


In cercaonline.aspx.cs ho questo codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Tutti i controlli restituiscono null. La cosa strana è che se richiamo un controllo nella Masterpage con PrevoiusPage mi restituisce il controllo.
Dove sbaglio?
Grazie mille

Gho5t Profilo | Junior Member

Ciao,
il tuo problema è che quando pigi il pulsante cerca non rimane nella stessa pagina, ma rimanda alla pagina cercaonline.aspx:
PostBackUrl="cercaonline.aspx"

Quindi nella pagina cercaonline.aspx non esistono i controlli RadioButtonList e DropDownList perché esistono solo nella pagina default.aspx.
Per risolvere il tuo problema ti consiglio di mettere tutto il tuo pulsante cerca (Html e code behind) in uno UserControl e poi rimandarlo nella pagina di visualizzazione dei risultati.


Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui

Gemini Profilo | Expert

Ciao
La soluzione è questa:
ContentPlaceHolder cphCenter = (ContentPlaceHolder)PreviousPage.Master.FindControl("cphCenter");
cerca.Contratto = ((RadioButtonList)cphCenter.FindControl("rblContratto")).SelectedValue;
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5