Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Sorting solo alfabetico (e non numerico) che fare ?

    Per utilizzare sorting e paging nel mio dataview uso il codice sottostate.
    ho però un problema : l'ordinamento avviene in senso alfabetico, così ceh sui numeri ho qualche problema, ad esempio ordina in questo modo:

    999
    88
    566
    34030

    e non in questo come vorrei :

    34030
    999
    566
    88


    l'ordinamento delle stringhe avviene invece senza problemi.
    cosa devo modificare ? non riesco a venirne a capo. grazie



    codice:
    Private Property GridViewSortDirection() As String
            Get
                Return IIf(ViewState("SortDirection") = Nothing, "DESC", ViewState("SortDirection"))
            End Get
            Set(ByVal value As String)
                ViewState("SortDirection") = value
            End Set
        End Property
    
        Private Property GridViewSortExpression() As String
            Get
                Return IIf(ViewState("SortExpression") = Nothing, String.Empty, ViewState("SortExpression"))
            End Get
            Set(ByVal value As String)
                ViewState("SortExpression") = value
            End Set
        End Property
    
        Private Function GetSortDirection() As String
            Select Case GridViewSortDirection
                Case "ASC"
                    GridViewSortDirection = "DESC"
    
                Case "DESC"
                    GridViewSortDirection = "ASC"
            End Select
    
            Return GridViewSortDirection
        End Function
    
        Protected Sub gridViewPublishers_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
            DataG1.DataSource = SortDataTable(DataG1.DataSource, True)
            DataG1.PageIndex = e.NewPageIndex
            DataG1.DataBind()
        End Sub
    
        Protected Function SortDataTable(ByVal dataTable As DataTable, ByVal isPageIndexChanging As Boolean) As DataView
            If Not dataTable Is Nothing Then
                Dim dataView As New DataView(dataTable)
                If GridViewSortExpression <> String.Empty Then
                    If isPageIndexChanging Then
                        dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection)
                    Else
                        dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GetSortDirection())
                    End If
                End If
                Return dataView
            Else
                Return New DataView()
            End If
        End Function
    
        Protected Sub gridViewPublishers_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs)
            GridViewSortExpression = e.SortExpression
            Dim pageIndex As Integer = DataG1.PageIndex
            DataG1.DataSource = SortDataTable(DataG1.DataSource, False)
            DataG1.DataBind()
            DataG1.PageIndex = pageIndex
        End Sub
    =MaRk0n3=


  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Probabilmente La colonna della datatable che contiene qui dati è di tipo string, dovresti impostarla come int (o altri tipi numerici)

  3. #3
    il fatto è che i adti sono riversati dentro una datatable

    Dim myDataTable As New DataTable("Elenco")

    myDataTable.Columns.Add("contatore")
    myDataTable.Columns.Add("id")

    come posso settare il tipo della colonna id per fare in modo che sia Intero ?

    Ho provato così,

    myDataTable.Columns.Add("id", Integer)

    ma da errore !!!!
    =MaRk0n3=


  4. #4
    ho risolto

    myDataTable.Columns.Add("punteggio", System.Type.GetType("System.Int16"))
    =MaRk0n3=


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.