non preoccuparti del DataSet, sei riuscito a creare l' EventHanderl per l'evento ItemDataBound?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
6 messaggi dal 07 giugno 2006
Alla fine ho risolto in questo modo:

Dim ds as DataSet = new DataSet()
'Lo riempio
objAdapter.Fill(ds, "TABELLA")


Dim currentCategory As String = [String].Empty

' prendo i dati dal DataSet popolato
Dim dt As DataTable = ds.Tables(0)

Dim i As Integer
For i = 0 To dt.Rows.Count - 1
' controllo se la categoria è la stessa della riga precedente
If ds.Tables(0).Rows(i)("data").ToString() <> currentCategory Then
' aggiungo una nuova riga al DataTable
Dim dr As DataRow = dt.NewRow()
dr(0) = dt.Rows(i)("data").ToString()
dt.Rows.InsertAt(dr, i)
' response.write("pippo")
End If

' salvo la categoria corrente
currentCategory = ds.Tables(0).Rows(i)("data").ToString()
Next i

currentCategory = [String].Empty

' faccio il binding dei dati sul datagrid
dg.DataSource = dt
dg.DataBind()


End Sub

' routine per intercettare il databind e modifica il DataGrid
private Sub dg_ItemDataBound(sender As Object, e As DataGridItemEventArgs)

Dim currentCategory As String

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
' controllo se la categoria è sempre la stessa
' la cerco nella prima colonna, le altre sono vuote
If e.Item.Cells(0).Text <> currentCategory Then
' cambio il colspan, così la cella è grande tutta la riga
e.Item.Cells(0).ColumnSpan = e.Item.Cells.Count
response.write("pippo")

' e tolgo via le altre celle
Dim i As Integer
For i = 1 To e.Item.Cells.Count - 1
e.Item.Cells.RemoveAt(i)
Next i
Else
' rimuovo solo la prima riga, che contiene la categoria
e.Item.Cells.RemoveAt(0)
End If

' salvo il titolo corrente prima di continuare il ciclo
currentCategory = e.Item.Cells(0).Text
response.write("pippo")
End If
End Sub 'dg_ItemDataBound



Mi aggiunge la linea come volevo, credo però non funzioni la routine per intercettare il databind e modificare il DataGrid.. Non so se ho sbagliato qualcosa nella traduzione da c a vb o che..

Oltre a questo, facendo in questo modo, e non creandomi da codice la tabella, non so come aggiungere il simbolo "%" di fianco ad alcuni valori..

:(


Samuele.
6 messaggi dal 07 giugno 2006
Ciao,
purtroppo (o per fortuna), mi ritrovo a scrivervi per cercare l'ennesima soluzione al mio problema..

Come detto sono riuscito ad inserire la famosa riga nella paginazione, ora però vorrei anche che la linea inserita avesse colore e colspan differenti.. Ho provato con il codice postato sopra, ma non funge.. mi pare non passi proprio dall'ItemDataBound.. Ho provato anche ad inserire, dove aggiunge le righe:

If ds.Tables(0).Rows(i)("data").ToString() <> currentCategory Then
dg.ItemStyle.BackColor = System.Drawing.Color.Red
dg.AlternatingItemStyle.BackColor = System.Drawing.Color.Red
else
dg.ItemStyle.BackColor = System.Drawing.Color.Yellow
dg.AlternatingItemStyle.BackColor = System.Drawing.Color.Yellow
end if


Ma anche così non ottengo ciò che cerco..


Samuele.

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.