Ho lavorato in un progetto .NET Framework 4 utilizzando tag del server come <% = qualunque sia%> per impostare la visibilità dei controlli runat = "server", come segue:Imposta la proprietà Visible con il tag del server <%= %> in Framework 3.5
<div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
Questo funziona con il framework 4, ma ora si sta tentando di utilizzarlo su un progetto Framework 3.5 che sembra non funzionare. Questa è solo una caratteristica di Framework 4? Esiste un'alternativa più interessante (e con estensione .xx) per impostare la visibilità da codebehind? Sto usando il brutto:
MiId.Visible = MyVisiblePropertyOnCodeBehind
Grazie in anticipo,
Tom
[Modificato] SOLUZIONE:
Grazie per i vostri commenti che mi fa capire il mio problema e la soluzione!
È stata colpa mia in più di una cosa.
Nel progetto VS2010 usavamo <% # invece di <% =
Inoltre, non ho notato che nel progetto VS2010 stavamo usando pagine non ereditate da “pagina”, ma da un CustomPage classe, che stava facendo automaticamente il binding, senza che me ne accorgessi, e questo mi fa pensare che fosse solo una funzionalità di Framework 4.0.
Come detto qui, se avete la seguente marcatura:
<div id="MyId" runat="server" visible="<%# MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
si può farlo funzionare, aggiungendo quanto segue al codebehind:
public bool MyVisiblePropertyOnCodeBehind = true;
protected void Page_Load(object sender, EventArgs e) {
DataBind();
// Or if you want only for one control, MyId.DataBind();
}
Come ho letto, questo DataBind () può ridurre le prestazioni dell'applicazione. Hai idea di quanto? Potrebbe essere intesa come una tecnica "professionale" da utilizzare su grandi progetti, o pensi che dovrebbe essere evitato?
Mi piace il modo in cui rende il markup leggibile e facile da capire in un'unica visualizzazione, ma non mi piacerebbe essere colpevole di codice lento perché quello.
Qual è la firma della proprietà 'MyVisiblePropertyOnCodeBehind'? – PraveenVenu
In realtà non penso che sia brutto impostarlo nel codice. Imposta 'visible =" false "' come predefinito nella parte frontale del codice se vuoi ricordare che il controllo non è necessariamente visibile. – mac9416