Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Datagrid - un dubbio!

  1. #1
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141

    Datagrid - un dubbio!

    Ciao a tutti...

    ho un datagrid già funzionante schematizzabile cosi:

    ordine1 rif1 cod descrizione prezzo(riga1 ordine1)
    ordine1 rif1 cod descrizione prezzo(riga2 ordine1)
    ordine1 rif1 cod descrizione prezzo(riga3 ordine1)
    ordine2 rif2 cod descrizione prezzo(riga1 ordine2)
    ordine2 rif2 cod descrizione prezzo(riga2 ordine2)
    ecc..........

    i dati li ho tutti il problema e che vorrei renderlo più leggibile, pensavo in questo modo:

    ordine1 rif1 cod descrizione prezzo(riga1 ordine1)
    -----------------cod descrizione prezzo(riga2 ordine1)
    -----------------cod descrizione prezzo(riga3 ordine1)
    ordine2 rif2 cod descrizione prezzo(riga1 ordine2)
    -----------------cod descrizione prezzo(riga2 ordine2)

    ecc..........omettendo i dati che si ripetono
    c'è nessuno che ha qualche suggerimento...???
    In asp avevo realizzato qualcosa di simile confrontando il dato della riga precedente e nascondendolo se era uguale, ma su un datagrid non ho idea di come possa essere applicato, ammesso che lo si possa fare??

    Ciao e grazie a tutti comunque :sgrat:

    max
    -||> xamax <||-

  2. #2
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    l'ultima faccina non doveva essere :sgrat: ma

    ciao ciao
    -||> xamax <||-

  3. #3
    Io, se ho ben capito, un problema simile l'ho risolto con due repeater uno dentro l'altro (ho evitato il datagrid per problemi con le tabelle). Invece di usare una sql unica ho però usato due sql: in questo caso una sql sugli ordini ed una sui prodotti.

    Prova a leggere questa discussione:

    http://forum.html.it/forum/showthrea...hreadid=584639

    se non è chiara chiedi pure.

    www.radiana.it - Spartiti musicali e Mp3

  4. #4
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Devi quindi creare un master-detail con una sola DataGrid...
    Ti consiglio di dare un'occhiata a questo controllo:

    http://www.denisbauer.com/ASPNETCont...ierarGrid.aspx

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  5. #5
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    grazie dei suggerimenti...

    è possibile secondo voi impostare una condizione che vada a nascondere alcune celle in corrispondenza di alcuni valori di text della cella stessa

    if testocella1 <> "1" then
    nascondicella1
    nascondicella2
    nascondicella3

    end if

    nessun suggerimento su come si possa fare????

    ciao
    -||> xamax <||-

  6. #6
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    x s_dimaio

    avresti mica un esempio o traccia di codice per capire cosa intendi per due repeater uno dentro l'altro

    ciao e grazie
    max
    -||> xamax <||-

  7. #7
    Questa è la mia pagina index.aspx

    codice:
    <%@ Page Language="VB" Inherits="MyArgomenti" Src="Index.vb" %>
    <html>
    <head>
    </head>
    <body>
        <form runat="server">
            <table>
                <tbody>
                    <tr>
                        <td>
                         </td>
                        <td>
                            <asp:Repeater id="RepeaterArgomenti" runat="server">
                                <HeaderTemplate>
                                    <table border="2">
                                        <tr>
                                            <td>
                                                </td>
                                            <td align="middle">
                                                Forum</td>
                                            <td align="middle">
                                                Msg</td>
                                            <td align="middle">
                                                Ultimo Messaggio</td>
                                            <td align="middle">
                                                Moderatore</td>
                                        </tr>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr>
                                        <td colspan="5">
                                                <%# Container.DataItem("Ar_Nome") %>
                                        </td>
                                    </tr>
                                    <asp:Repeater id="RepeaterForum" runat="server" datasource='<%# ShowForum (Container.DataItem("Ar_Id")) %>'>
                                        <ItemTemplate>
                                            <tr>
                                                <td align="middle">
                                                    <%# Container.DataItem("Fo_Id") %></td>
                                                <td>
                                                    <%# Container.DataItem("Fo_Nome")%>
                                                    
    
                                                    <%# Container.DataItem("Fo_Descrizione")%></td>
                                                <td align="middle">
                                                    <%# Container.DataItem("Fo_Count")%></td>
                                                <td align="middle">
                                                    <%# FormatDateTime(Container.DataItem("Fo_LastPost"), DateFormat.ShortDate)%>
                                                    
    
                                                    di: <%# Container.DataItem("IscrReply.Is_Nome")%></td>
                                                <td align="middle">
                                                    <%# Container.DataItem("Iscritti.Is_Nome")%></td>
                                            </tr>
                                        </ItemTemplate>
                                    </asp:Repeater>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                </FooterTemplate>
                            </asp:Repeater>
                        </td>
                    </tr>
                </tbody>
            </table>
         </form>
    </body>
    </html>
    Mentre questo è il file di code-behind Index.vb:
    codice:
    Imports System
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Configuration
    Imports System.Data
    Imports System.Data.OleDb
    Imports MyComponents
    
        Public Class MyArgomenti
    
          Inherits Page
    
          Protected withevents RepeaterArgomenti as Repeater
          Private ForumQuery As DataView
    
            Sub Page_Load
    
              Dim ForumData As DataSet
              Dim ForumConn As OleDbConnection
              Dim ForumAdapt As OleDbDataAdapter
              Dim StrSql As string
    
              ForumData= new DataSet()
              ForumConn= New OleDbConnection(ConfigurationSettings.AppSettings("ConnForum"))
              StrSql = "SELECT Ar_Id, Ar_Nome FROM Argomenti ORDER BY Ar_Nome"
    
              ForumConn.Open()
              ForumAdapt= New OleDbDataAdapter (StrSql,ForumConn)
              ForumAdapt.Fill (ForumData, "Tabella_Argomenti")
    
              StrSql  = "SELECT Forum.Fo_Id, Forum.Fo_Nome, Forum.Fo_Descrizione, Forum.Fo_Argomento, Forum.Fo_Count, Forum.Fo_LastPost, Forum.Fo_Moderatore, Forum.Fo_View, IscrReply.Is_Nome, Iscritti.Is_Nome "
    	      StrSql &= "FROM (Forum INNER JOIN Iscritti ON Forum.Fo_Moderatore = Iscritti.Is_Id) INNER JOIN Iscritti AS IscrReply ON Forum.Fo_LastPostAutore=IscrReply.Is_Id "
    	      StrSql &= "WHERE Fo_View='vero' ORDER BY Fo_Nome"
    
              ForumAdapt.SelectCommand = New OleDbCommand(StrSql, ForumConn )
              ForumAdapt.Fill( ForumData, "Tabella_Forum" )
              ForumConn.Close()
    
              ForumQuery = ForumData.Tables( "Tabella_Forum" ).DefaultView()
    
              RepeaterArgomenti.DataSource = ForumData
              RepeaterArgomenti.DataMember = "Tabella_Argomenti"
              RepeaterArgomenti.DataBind()
            End Sub
    
    
    
    
            Function ShowForum( Ar_Id As Integer) As DataView
                ForumQuery.RowFilter = "Fo_Argomento=" & Ar_Id
                Return ForumQuery
            End Function
    
        End Class
    A livello grafico il risultato è un qualcosa di molto simile all'homepage di questo forum:

    codice:
    Categoria 1
    aa aaa aaaa aaa
    bb bbb bbbb bbb
    cc ccc cccc ccc
    
    Categoria 2
    aa aaa aaaa aaa
    bb bbb bbbb bbb
    cc ccc cccc ccc
    www.radiana.it - Spartiti musicali e Mp3

  8. #8
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    grazie 1000 s_dimaio

    proverò ad applicare ciò che mi hai suggerito, intanto ho realizzato in un altro modo, graficamente il risultato è simile:


    Sub ItemDataBoundEventHandler(sender as Object, e as DataGridItemEventArgs)
    Dim riga as string = DataBinder.Eval(e.Item.DataItem, "Riga")

    If riga <> 1 then

    e.Item.Cells(0).text= ""
    e.Item.Cells(1).text= ""
    e.Item.Cells(2).text= ""
    e.Item.Cells(3).text= ""
    'e.Item.Cells(1).ForeColor= System.Drawing.Color.white
    e.Item.Cells(4).backColor= System.Drawing.Color.lightgray
    e.Item.Cells(5).backColor= System.Drawing.Color.lightgray
    e.Item.Cells(6).backColor= System.Drawing.Color.lightgray
    'e.Item.Cells(2).ForeColor= System.Drawing.Color.white
    ' e.Item.Cells(3).ForeColor= System.Drawing.Color.white
    else
    e.Item.BackColor = System.Drawing.Color.green 'colora tuttala riga
    'e.Item.Cells(4).backColor= System.Drawing.Color.lightgray
    'e.Item.Cells(5).backColor= System.Drawing.Color.lightgray
    ' e.Item.Cells(6).backColor= System.Drawing.Color.lightgray
    End If

    End Sub

    praticamente coloro o impongo il text della cella = "" a seconda del verificarsi di una condizione nel record.
    Lo so non è elegantissimo ma funziona.

    ancora grazie e ciao a tutti
    -||> xamax <||-

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.