Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Datagrid
lunedì 08 novembre 2004 - 13.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 13:13
Ciao, posso inserire in un datagrid una colonna di tipo hyperlink dove però l'url della pagina da richiamare al click non è fisso, ma prende i valori da un campo di una tabella di un database? Come si può fare?Grazie mille
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 14:49
Nel frattempo ho provato a mettere la proprietà
DataNavigateUrlFormatString='<%# DataBinder.Eval(Container.DataItem, "nome")%>'
all'interno di <asp:HyperLinkColumn................>
ma mi dà l'errore:
Errore di compilazione
Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
Messaggio di errore del compilatore: CS0117: 'System.Web.UI.WebControls.HyperLinkColumn' non contiene una definizione per 'DataBinding'.
in corrispondenza della dichiarazione della colonna hyperlink.
Sai da cosa dipende? Grazie
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 15:44
Se uso una templatecolumn come dici te, penso che per avere un link dovrei mettere all'interno dell'itemtemplate un link dato da A href in questo modo:
<ItemTemplate>
<A href="<%# DataBinder.Eval(Container.DataItem, "Link")%>?id=<%# DataBinder.Eval(Container.DataItem, "IDMenu")%>"><%# DataBinder.Eval(Container.DataItem, "Nome")%></a>
</ItemTemplate>
Se clicco un elemento in quella colonna, come faccio da codice c# a recuperare l'elemento cliccato in modo che da codice posso associare a quella voce un dato formato(ad esempio grassetto)?
Io stavo usando l'hyperlinkcolumn poichè pensavo che fosse più facile fare ciò.
Mi puoi aiutare? Grazie mille della disponibilità.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 16:20
Scusa se nn sono chiara, ora cerco di farti capire cosa devo fare,
Ho una web form con un datagrid; metto una colonna di tipo template in cui inserisco gli A href così
<Columns>
<asp:TemplateColumn>
<ItemStyle CssClass="tableRow">
</ItemStyle>
<ItemTemplate>
<A href="<%# DataBinder.Eval(Container.DataItem, "Link")%>?id=<%# DataBinder.Eval(Container.DataItem, "IDMenu")%>"><%# DataBinder.Eval(Container.DataItem, "Nome")%></a>
</ItemTemplate>
</asp:TemplateColumn>
dove il nome della pagina a cui accedere cliccando su un dato link è recuperato dal campo 'Link' di una tabella del database. Inoltre quando io clicco su un elemento di tipo A della colonna templatecolumn il testo che ho cliccato compare in grassetto e con un certo colore di sfondo, avendo associato il codice seguente:
.tableRow A:active { FONT-WEIGHT: bold; BACKGROUND-COLOR: #505f94; TEXT-DECORATION: none }
Al clic si passa ad una nuova pagina che contiene lo stesso datagrid, oltre ad altri controlli;
come faccio in modo che il testo dell'elemento di tipo A della colonna templatecolumn del datagrid cliccato nella pagina precedente, mi compaia nella nuova pagina secondo un dato formato, per esempio in grassetto?
Mi puoi aiutare?Grazie mille. Se nn sono stata chiara dimmelo così cerco di spiegarti meglio questo problema ke nn mi fa continuare. Grazie tante.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 17:23
Ho capito come recuperare nella seconda pagina il valore cliccato nella prima pagina; ma nn so come utilizzate initemdatabound; nel datagrid della seconda pagina io devo associare un tipo di carattere e un colore all'elemento A href che ho cliccato nella prima pagina; come faccio ad accedere a questo eleemnto?esiste qualche esempio di codice che mi riesca a far capire quale è il codice in c#(ke conosco molto poco) che riesca a fare ciò. Scusa se ti sto disturbando. Nn avrei proprio voluto! Grazie veramente.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 18:32
Penso che io nel codice html nel datagrid devo scrivere OnItemDataBoun="collegamento"
dove dichiaro la funzione nel code behind così
void collegamento(object sender, DataGridCommandEventArgs e)
{
string ss=Request.QueryString["id"];
if( (e.Item.ItemType = ListItemType.Item) || (e.Item.ItemType = ListItemType.AlternatingItem) )
{
if(((Label)e.Item.FindControl(lb)).text == ss)
{
e.Item.backcolor;
}
}
Ma nn capisco cosa centra la label con l'elemento A href.
Inoltre quando visualizzo la pagina in explorer, mi dà errore in corrispondenza della dichiarazione della funzione collegamento:
Errore di compilazione
Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
Messaggio di errore del compilatore: CS0122: 'GOCRM_AdministrativeTool.ASPX.NuovoProgetto.collegamento(object, System.Web.UI.WebControls.DataGridCommandEventArgs)' è inaccessibile a causa del livello di protezione.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 19:29
Solo che se io creo una label e la richiamo con FindControl passandogli l'ID della label funziona, ma se do un ID all'elemento A href il FindControl nn funziona.
Inoltre il confronto
if(((label)e.item.FindControl(idLabel)).text == tuovalore)
nn mi funziona.
Sai perchè?Grazie
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 8 nov 2004 - 19:44
Scusa ma con runat=server mi dà l'errore
Errore del parser
Descrizione: Errore durante l'analisi di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
Messaggio di errore del parser: Il formato del tag server non è corretto.
NN so ke fare.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
mar 9 nov 2004 - 00:02
Sto provando a fare come mi hai detto inizialmente. Già ho un errore:
Errore di compilazione
Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
Messaggio di errore del compilatore: CS0118: 'System.Web.UI.WebControls.DataGridItem.DataItem' indica 'proprietà' dove era previsto 'metodo'.
in corrispondenza di Container.DataItem("nomecampo")
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
mar 9 nov 2004 - 09:41
Si chiama Link. Grazie del tuo interessamento al mio problema
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
mer 10 nov 2004 - 11:06
Grazie , ho risolto con una colonna di tipo Buttoncolumn, e così riesco a impostare al caricamento della pagina lo stile ad una data riga.
Luigi3
Profilo
| Junior Member
123
messaggi | Data Invio:
ven 25 ago 2006 - 17:27
Riprendo questo post x un mio problema simile.
public string GetLink()
{
return "OEEBoard.aspx";
}
<asp:HyperLink NavigateUrl='<%#GetLink()%>'...>
Ho inserito questi due pezzi di codice, ma quando la pagina si crea, ci sono le label ma non contengono i link.
Mi spiego: ho un item che contiene diverse label e questo hyperlink; una volta riempito il campo hyperlink dovrebbe puntare ad una specifica pagina, prima xo' deve scrivere un cookie. Per questo motivo mi serviva la funzione nel codice c#. Pero' la funzione non viene proprio richiamata. Dove sbaglio? Spero mi potrete aiutare, grazie in anticipo!!!!
Luigi3
Profilo
| Junior Member
123
messaggi | Data Invio:
mar 29 ago 2006 - 11:23
Alla fine ho risolto inserendo un button e catturando l'evento Click. Appena posso provo a fare come mi hai scritto tu. Grazie ancora!!
Torna su
Stanze Forum
Elenco Threads
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 !