Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157

    window.open da GridView

    Ciao,
    ho un nuovo dubbio sui GridView.
    Sul Load della pagina mi creo le colonne che linko ai miei campi. Poi creo un ButtonField di tipo img. Voglio che quando ci clicko sopra mi apra una finestra nuova del tipo:

    new.aspx?ID=1234

    in cui l'ID è quello del record contenuto nella riga. Volevo fare una Sub del genere:

    Protected Sub GridView_RowCommand(...) Handles gvOnGoing.RowCommand
    ...
    End Sub

    ma non so che comando ci devo mettere dentro. Prima ho sempre usato un window.open di javascript. Adesso ho provato diverse soluzioni che ho trovato in internet, ma da errore su tutto.

  2. #2
    potresti usare un hyperlinkfield :

    <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="new.aspx?id={0}" Text="New" />

    Dove il campo ID deve esserti tornato dalla query ...
    OUTSHINE '84

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    Scusa, ma c'è qualcosa che mi sfugge.
    Se io creo la colonna da codice e provo a scrivere:

    Dim TableLink As New HyperLinkField
    With TableLink
    .Text = "Open"
    .Target = "_New"
    .DataNavigateUrlFields() = "ID"
    .DataNavigateUrlFormatString = "itMaint.aspx?ID={0}"
    End With
    gvOnGoing.Columns.Add(TableLink)
    gvOnGoing.DataBind()


    mi da problemi perchè DataNavigateUrlFields() è una matrice, ma se provo a dimensionarla mi da errore sul DataBind

  4. #4
    io lo avevo inserito direttamente nella pagina html come tag ed era fissata come condizione per ognuna delle colonne ...
    OUTSHINE '84

  5. #5
    Originariamente inviato da cypi
    Scusa, ma c'è qualcosa che mi sfugge.
    Se io creo la colonna da codice e provo a scrivere:

    Dim TableLink As New HyperLinkField
    With TableLink
    .Text = "Open"
    .Target = "_New"
    .DataNavigateUrlFields() = "ID"
    .DataNavigateUrlFormatString = "itMaint.aspx?ID={0}"
    End With
    gvOnGoing.Columns.Add(TableLink)
    gvOnGoing.DataBind()


    mi da problemi perchè DataNavigateUrlFields() è una matrice, ma se provo a dimensionarla mi da errore sul DataBind
    Hai provato anche cosi'?:
    codice:
    .DataNavigateUrlFields.Add("ID")
    Facci sapere....
    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    L'Add non lo accetta.
    Ho fatto come diceva Outshine, cioè l'ho messo nell'HTML, e funziona.

    La soluzione, però, non mi piace molto. E' meno flessibile.

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Si potrebbe tentare con la costruzione dinamica del ColumTemplate ma, forse, la massima flessibilità si otterrebbe non usando il GridView.

    Una domanda: questo GridView deve essere per forza costruito a runtime? deve permettere l'ordinamento, l'inserimento e l'aggiornamento di record?
    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    In realtà in origine era una tabella e funzionava benissimo.
    Quello che mi interessava era l'ordinamento, che, tra l'altro, non riesco a fare.

    Bisogna anche dire che il codice di questa pagina non è proprio semplice. Ci sono un mucchio di variabili e di elementi.

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cypi
    In realtà in origine era una tabella e funzionava benissimo.
    Quello che mi interessava era l'ordinamento, che, tra l'altro, non riesco a fare.

    Bisogna anche dire che il codice di questa pagina non è proprio semplice. Ci sono un mucchio di variabili e di elementi.
    Non ci siamo ancora capiti. La domanda è se è proprio necessario scrivere il GridView a runtime. Se questo non è cecessario, ci sono altre strade percorribili, ad esempio il ListView.

    ps. se vuoi provare puoi tentare di scrivere da codice il Templace column. A me sembra una sciochezza e non l'ho mai usato, ma comunque si può fare.
    Pietro

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    Il fatto è che la tabella ha sempre un numero di colonne diverse, contenenti campi diversi e devo partire da una query che, per forza di cose, deve contenere molti più campi di quelli da visualizzare.
    Magari provo con la ListView, poi ti faccio sapere.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.