TemplateColumn e ItemTemplate a runtime...

giovedì 14 ottobre 2004 - 10.21

Peephee Profilo | Newbie

Ciao a tutti,
volevo sapere come fare per creare lo stesso codice qui sotto (che ho preso come esempio da un'altra pagina aspx) nel codebehind per creare una TemplateColumn a runtime (di un DataGrid a runtime).
In particolare non ho ben capito come sia possibile scrivere in C# questa cosa:
< %# DataBinder.Eval(Container.DataItem, "'Servizio_ID") %>

<asp:TemplateColumn SortExpression="'Servizio_ID" HeaderText="'Servizio_ID">
<ItemTemplate>
<a Class=linkA href="../dettaglio.aspx?Servizio_ID=<%# DataBinder.Eval(Container.DataItem, 'Servizio_ID') %>&Regione=<%# DataBinder.Eval(Container.DataItem, "Regione") %>" >
<%# DataBinder.Eval(Container.DataItem, "Servizio_ID") %>
</a>
</ItemTemplate>
</asp:TemplateColumn>

Vorrei usare il TemplateColumn e non l''HyperLinkColumn perché non mi permette di passare 2 parametri.. giusto?
[HyperLinkColumn permette di passare solo un valore {0} :
DataNavigateUrlField="IntegerValue"
DataNavigateUrlFormatString="detailspage.aspx?id={0}"]

Come posso fare?

Io inizierei così:
TemplateColumn Servizio_ID = new TemplateColumn();
Servizio_ID.HeaderText = "ID Servizio";
Servizio_ID.SortExpression = "Servizio_ID";
ma dopo?

[Altro.
Ho notato che il sito non permette di scrivere l' < (il minore) per quel fatto della protezione di asp.net. E' una protezione legittima ma se si vuole eliminare va impostato ValidateRequest="false" nella @Page.]

LeonDom Profilo | Senior Member

Non devi scriverla in C#, devi metterla nell'HTML della pagina aspx.

Io di solito creo un SelectCommand su un linkButton mascherato da hyperlink e poi da codice gli passo la stringa che compongo io, prendendo i SelectedIndex della dGrid.

LeonDom

Peephee Profilo | Newbie

X LeonDom
La vorrei scrivere in C# perché riguarda un datagrid creato a runtime.
Comunque grazie per il suggerimento: magari lo uso in futuro!

X Coach
Ho provato a cambiare aggiungendo {1} per il secondo parametro da passare facendo qualcosa del tipo
DataNavigateUrlFormatString="detailspage.aspx?id={0}&param2={1}"
ma dà un errore infernale!
Probabilmente non si può fare.

Sto cercando di cambiare la pagina chiamata in modo che non abbia bisogno di avere il secondo parametro, altrimenti cercherò di fare una TemplateColumn con un ItemTemplate come scrivevo all'inizio... ma sarà tosta!

Grazie lo stesso

LeonDom Profilo | Senior Member

Non intendevo che non dovevi usare il linguaggio C#, intendevo che <%# Databinder.Eval..... etc etc %> andava nell' HTML e non nel codice...

ciaociao...

LeonDom
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5