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=
Rispondi quotando
