85 messaggi dal 05 gennaio 2006
Puoi postare il codice di

GridRowBound

Ciao.
21 messaggi dal 10 agosto 2006
Premettendo che ho seguito le indicazioni riportate dall'utente nostromo in qualche reply fa, questo è il codice, opportunamente convertito in vb.net, associato all'evento RowDataBound:

    If (e.Row.RowType = DataControlRowType.DataRow) Then
      Dim _Hyp As New HyperLink
      _Hyp = e.Row.FindControl("MyLink")
      If Not _Hyp Is Nothing Then
        _Hyp.NavigateUrl = "javascript:;"
        _Hyp.Text = Griglia.Rows(e.Row.RowIndex).Cells(0).Text
      End If
    End If


La valorizzazione della proprietà Text dell' Hyperlink è stata fatta solo per prova in quanto, come spiegato, non riesco proprio ad arrivare a beccare il valore esatto del campo 0 (che poi è l'id lato server della riga).
Modificato da motogpdesmo16 il 24 giugno 2007 23.18 -
85 messaggi dal 05 gennaio 2006
Devi aggiungere l'attributo onclick ad _HYp atrimenti non va.

_hyp.attributes.add("onclick",string.format("javascript:nomefunzione('{0}')",gridview.Datakeys(e.row.rowindex).value))

Occhio alla sintassi che forse posso aver commesso qualche errore (parentesi etc)

Ciao.
per il problema di indice non compreso nell'intervallo...

Griglia.DataKeys(e.Row.RowIndex).Value)

hai aggiunto perlomeno un campo alla proprietà DataKeyNames?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
21 messaggi dal 10 agosto 2006
Rispondo ad entrambi:

@aragorn: il problema non è tanto quello del lancio della funzioncina javascript poichè lo capisco che senza aggiungere l'attributo "onclick" funzionerà ben poco. Il problema maggiore è quello di recuperare il valore della casella e poi penserò alla funzioncina javascript da lanciare

@nostromo: a dir la verità alla proprietà da te indicata "DataKeyNames" non avevo minimamente fatto riferimento. Ora vedo di documentarmi a riguardo e poi vi aggiorno sempre sul foru,m


edit: rispondo al suggerimento datomi da nostromo.
Ho impostato la proprietà "datakeynames" con la chiave primaria della tabella lato server su cui poggia la mia gridview (Datakeynames="Id_disponibilita")
Nonostante questa operazione nell'evento Griglia_RowDataBound, continuo ad ottenere il medesimo errore descritto precedentemente.
Riesco (e riuscivo anche prima di impostare la proprietà) a recuperare il progressivo della riga ossia riga 0, riga 1, riga 2 ecc...ma di accedere alla singola no. Già facendo Griglia.rows(e.row.rowindex) ottengo l'errore...
Modificato da motogpdesmo16 il 25 giugno 2007 23.25 -
21 messaggi dal 10 agosto 2006
Tutto risolto.
Abbagliato e stonato dal caldo mi ostinavo a puntare a Griglia.rows....ecc
mentre facendo Griglia.DataKeys(e.Row.RowIndex).Value funziona tutto correttamente.
Grazie comunque per la dritta riguardo la DataKeyNames



edit: avrei bisogno (spero) di un'ultima dritta penso volta anche a migliorare il contenuto, già ottimo, di questo thread: nella funzioncina javascript scritta dall'amico nostromo, c'è un solo parametro ossia il valore di un particolare campo della riga che dovrebbe fungere da chiave primaria del database.
Se anzichè passare solo quel campo passassimo anche il nome della pagina da visualizzare, la variabile a cui fa riferimento, il valore stesso e il titolo da dare alla finestra, la funzione diventerebbe così:

 
<script language="javascript" type="text/javascript"> 
 function OpenWindow(pagina, variabile, campo, titolo) 
 { 
    window.open(pagina + '.aspx?' + variabile + '=' + campo, titolo,"height=300,width=620,status=yes,toolbar=no,menubar=no,location=no");     } 
</script> 


Nella chiamata del codebehind ed in particolare alla valorizzazione del nuovo attributo "onclick", come bisognerebbe effettuare la chiamata alle varie funzioni di formattazione delle stringhe con il passaggio di 4 parametri anzichè 1???

Vogliate prendere questa mia richiesta sia come aiuto "personale" sia, come spiegato in precedenza, come possibilità di rendere veramente "universale" questo tipo di funzionalità.
Grazie.
Modificato da motogpdesmo16 il 26 giugno 2007 00.00 -
dimmi se ho capito bene, vorresti parametrizare la pagina da aprire nella "popup", io in questo caso genererei dinamicamente lo script javascript, mediante l'istanza della classe ClientScriptManager che puoi recuperare mediante la proprietà ClientScript della classe Page.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
21 messaggi dal 10 agosto 2006
nostromo ha scritto:
dimmi se ho capito bene, vorresti parametrizare la pagina da aprire nella "popup", io in questo caso genererei dinamicamente lo script javascript, mediante l'istanza della classe ClientScriptManager che puoi recuperare mediante la proprietà ClientScript della classe Page.

ciao marco


Si esattamente. Vorrei parametrizzare la pagina da aprire nella popup passando appunto: nome, variabile, valore, titolo della finestra.
Seguendo il tuo suggerimento, in asp.net 1.0 e le Datagrid, a suo tempo feci questa cosa:

      var = "<script language ="
      var += """javascript"""
      var += " type="
      var += """text/javascript"""
      var += "> apri_popup(2);</script>"
      Me.RegisterClientScriptBlock("popup", var)

dove cablavo il valore 1 all'apertura di una certa pagina, il valore 2 ad un'altra ecc ecc.
Questo codice che ho postato si avvicina, seppure in maniera rudimentale, a quella che era la tua intenzione di spiegazione??

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.