Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    83

    testi lunghi e formattazione datagrid

    buongiorno a tutti...
    ho posizionato un datagrid all'interno di un panel x motivi grafici. il problema è ke se i valori ke andranno a popolare li datagrid sono dei testi piuttosto lunghi, il datagrid mi esce dal panel. come si può evitare ciò? per forza con il pager? o c'è un altro modo?
    quello che piacerebbe a me è che in ogni cella del datagrid ci fosse la barra di scorrimento verticale così il datagrid rimane fermo e il testo può esser visualizzato tutto.
    grazie a tutti

  2. #2
    imposta la colonna che puo' contenere il testo lungo come una template column. In questo modo puoi editare la colonna in questione e ad esempio sostituire la label di default con una textbox readonly con le barre di scorrimento oppure quello che vuoi tu.
    http://msdn.microsoft.com/library/de...webcontrol.asp
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    83
    ciao! innanzitutto grazie della risposta

    siccome il mio datagrid è differente a seconda dello stato della pagina, lo devo creare dinamicamente tramite codice vb.
    questo è quello ke ho scritto:

    codice:
    				Dim template As Web.UI.ITemplate
    				Dim txt As New TextBox
    				txt.ReadOnly = True
    				txt.TextMode = TextBoxMode.MultiLine
    				txt.Font.Size = UI.WebControls.FontUnit.XSmall
    				txt.Font.Name = "Arial"
    				txt.ForeColor = Drawing.Color.Black
    				template.InstantiateIn(txt)     ***ERRORE***
    				tempcol = New UI.WebControls.TemplateColumn
    				tempcol.HeaderText = "Testo"
    				tempcol.ItemTemplate = template
    				tempcol.ItemStyle.VerticalAlign = VerticalAlign.Middle
    				dg.Columns.Add(tempcol)
    ma quando vado a compilare mi da "Riferimento a un oggetto non impostato su un'istanza di oggetto" sulla riga template.instantiatein(txt). ma ittemplate è un'interfaccia e non posso istanziarla con la new, giusto?
    poi, un'altra domanda. come faccio a passare il testo alla txt creata? cioè, per passare il campo ad una boundcolumn, ad esempio, ho:

    boundcol.DataField = "nomeCampo"

    ma la templatecolumn non ha la proprietà datafield!!!

    grazie ancora x l'aiuto

  4. #4
    Quanti stati ci sono? cosa cambia es. la datasource?
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    83
    ciao,
    sono 4 stati. si, ad ogni stato cambia la datasource e solo nello stato 4 ho testi lunghi, quindi è inutile mettere la textbox fissa x tutto il datagrid x' per i primi stati ho dei testi corti.

  6. #6
    da quello che dici non vedo la necessita' di gestire la creazione della datagrid da codice cosi come fai tu. Cosi ti complichi inutilmente la vita. Se la datasource e' realmente diversa (cioe' non cambia solo il contenuto ma anche la struttura dei dati es. tabella del db di origine diversa) preferirei comunque creare a design time le datagrid che mi servono e nasconderle o visualizzarle a seconda dello stato.
    Aggiungo poi che la template column puo' contenere dei controlli e saranno quindi questi (e non direttamente la template column) ad essere bindati ad una fonte dati.
    Ripeto comunque che crearsi la datagrid da codice e' equivalente a usare le bacchette cinesi per mangiare i maccheroni... non so se mi sono spiegato
    Saluti a tutti
    Riccardo

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.