Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Asp.net e datagrid con link interno

    Sto facendo un piccolo programmino in Asp.net e un datagrid che mostra i dati contenuti in un db, nella cella del nome dell'oggetto però voglio mettere un link a una pagina che mostri l'oggetto stesso (quindi fare un link a una pagina con un post + codice dell'oggetto)...Ho fatto il tutto con il metto MyDatagrid.Bind() ma le celle non sono modificabili una ad una...Sapete indicarmi qualche esempio a riguardo?

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    se usi l'1.1 e VB :

    Nell' Itemtemplate di una TemplateColum:

    codice:
    <ASP:TEMPLATECOLUMN headertext="TESTO">
    	<ITEMTEMPLATE>
    	<ASP:LINKBUTTON commandname="Link"  CommandArgument='<%# Container.Dataitem("NomeCampoLink") %>' runat="server" text='<%# Container.Dataitem("NomeCampoLink") %>'></ASP:LINKBUTTON>
    	</ITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

    Nel codice effettui il redirect alla pagina di dettaglio così:
    codice:
        Private Sub nomeDatagrid_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles nomeDatagrid.ItemCommand
            If e.CommandName = "Link" Then
                Response.Redirect("paginaDettaglio.aspx?ID=" & e.CommandArgument)
            End If
        End Sub

  3. #3
    Cosa devo inserire in CommandArgument='<%# Container.Dataitem("NomeCampoLink") %> al posto di NomeCampoLink? perchè ho provato e mi da lì l'errore nella funzione chiamata al click sulla datagrid, che mi hai scritto

    Di preciso l'errore è questo:
    BC30506: Handles clause requires a WithEvents variable.

    nella riga

    Line 35: Private Sub MyDataGrid_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles MyDataGrid.ItemCommand

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    proprio adesso ho fatto una cosa del genere:

    nell'ItemTemplate metti qualcosa del genere

    codice:
    <ItemTemplate>
    	, this);return false;"><%#Container.DataItem("n_progetto")%>
    </ItemTemplate>
    dove apri_pratica è una funzione javascript che apre la pagina richiesta inviando i dati id_pratica via post
    codice:
    function apri_pratica(id_pratica)
    {
    	submitData("titoli_dati_generali.aspx", 
    		{
    		    c_id_pratica:id_pratica 
    		}
    	);
    }
    Pietro

  5. #5
    Mi sembrava comodo il metodo descritto prima in modo da non tirare in ballo il javascript..Deve solo correggermi l'errore...

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da Draven999
    Cosa devo inserire in CommandArgument='<%# Container.Dataitem("NomeCampoLink") %> al posto di NomeCampoLink? perchè ho provato e mi da lì l'errore nella funzione chiamata al click sulla datagrid, che mi hai scritto

    Di preciso l'errore è questo:
    BC30506: Handles clause requires a WithEvents variable.

    nella riga

    Line 35: Private Sub MyDataGrid_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles MyDataGrid.ItemCommand
    1 - Hai dichiarato il datagrid nel code-behind ?

    codice:
    Protected WithEvents NomeDataGrid as System.Web.UI.WebControls.Datagrid
    ?

    2 - Al posto di 'NomeCampoLink' ci va il nome della colonna della tabella del database che vuoi usare come ID.
    Se come testo vuoi mettere una colonna differente, metti questa nel secondo <%# ... %> (quello agganciato alla proprietà Text, per intenderci)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.