377 messaggi dal 08 settembre 2001
Ciao a tutti,
ho usato il datagrid con una connesione sqlserver. E dentro al <column> ho
messo questo:

<asp:HyperLinkColumn HeaderText="" NavigateUrl="update.aspx" Text="Click Me" Target="_new"/>
<asp:HyperLinkColumn HeaderText="" NavigateUrl="delete.aspx" Text="Click Me" Target="_new"/>


come faccio ad assegnare al link un valore preso dal Db?

update.aspx?id=valoreID

377 messaggi dal 08 settembre 2001
mi hanno detto di inserire questo:
<asp:HyperLinkColumn Text="Click Me" DataNavigateUrlField="id" DataNavigateUrlFormatString="update.aspx?ID={0}" DataTextField="Prova" DataTextFormatString="{0:c}" Target="_new"/></asp:HyperLinkColumn>

però ricevo questo errore:
Errore del parser
Descrizione: Si è verificato un errore durante l'analisi di una risorsa necessaria per soddisfare la richiesta. Verificare i dettagli dell'errore specifico riportato di seguito e modificare il file sorgente in modo appropriato.

Messaggio di errore del parser: Il contenuto di tipo literal ('</asp:HyperLinkColumn>') non è consentito in un 'System.Web.UI.WebControls.DataGridColumnCollection'.


cosa vuol dire?
377 messaggi dal 08 settembre 2001
l'ho correto cosi:
<asp:HyperLinkColumn Text="Cancellami" DataNavigateUrlField="id" DataNavigateUrlFormatString="delete.aspx?ID={0}" DataTextField="id" Target="_new"/>

però ora mi chiedo il motivo per cui non mi appare Cancellami.
Infatti mi appare il valore dell'ID linkato.



e se poi volessi passare più di un parametro?
11 messaggi dal 16 settembre 2002
Ciao

Ti rioporto di seguito un esempio:

<asp:datagrid id="DataGridGestori" width="100%" Runat="server" AutoGenerateColumns="false" HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana" CellSpacing="0" CellPadding="3" GridLines="Both" BorderWidth="1" ForeColor="black" BorderColor="#7996de" OnSortCommand="DataGridSort" PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages" PageSize="10" pagecount="1" AllowSorting="True" AllowPaging="True" OnPageIndexChanged="DataGridPage">
<Columns>
<asp:BoundColumn HeaderText="Descrizione" DataField="DES_GES"> </asp:BoundColumn>
<asp:HyperLinkColumn DataNavigateUrlField="COD_GES" DataNavigateUrlFormatString="WebModGestore.aspx?id={0}" Text="Modifica" runat="server"></asp:HyperLinkColumn>
</Columns>
</asp:datagrid>

Nel comando HyperLinkColumn il DataNavigateUrlField deve indicare il campo del database che servirà a reperire le informazioni (di solito è la chiave).

Quando associ i dati alla DataGrid devi assicurarti che nel comando SQL
sia presente il campo che assocerai a DataNavigatorUrlField.

Ciao e buon lavoro
GiangiK
377 messaggi dal 08 settembre 2001
fino a li ci siamo, il mio problema ora è che io vorrei visualizzare come link non il valore del campo ID ma una scitta tipo "Modifica" la quale è associata ad un link tipo modifica.aspx?id={0}
11 messaggi dal 16 settembre 2002
Devi usare la proprietà Text="Modifica" sul comando HyperLinkColumn

Es:
<asp:HyperLinkColumn DataNavigateUrlField="COD_GESTORE" DataNavigateUrlFormatString="WebModGestore.aspx?id={0}" Text="Modifica" runat="server"></asp:HyperLinkColumn>

Ciao
GiangiK
Modificato da GiangiK il 03 dicembre 2002 09.58 -
377 messaggi dal 08 settembre 2001
ho omesso la proprietà DataTextField="id" perciò ora si prende la proprietà Text.

grazie....

ma se volessi passare più di un parametro preso dal db come faccio?

e poi questa sintassi id={0} che vuol dire? dove la trovo?
tra {} puoi specificare quello che devi recupera, per posizione.
{0} è il primo campo, ad esempio.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.