Hej! Det finns ett flertal sätt att fixa till det hela. Om du är lite mer trixig kan du fixa det på datahämtningsnivån (där du läser upp från en XML-fil). Då ändrar du i din databärare så att kolumnen med siffrorna inte är en strängkolumn utan en integer. skapa tabellen från ett schema, eller via kod och se till att just det fältet är av typen int... sen läser du in datan i ditt dataset.Sortera en DataView
Följande kod använder jag för att sortera en DataView.
(Datat är hämtat från en XML-fil.)
Private SixXML As New DataSet
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SixXML.ReadXm("http://Webservice")
tabelldata.DataSource = SixXML.Tables(4).DefaultView
tabelldata.DataBind()
End Sub
Private Sub tabelldata_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles tabelldata.SortCommand
'Sortera Datagriden efter fältnamn.
Dim dv As DataView = New DataView(SixXML.Tables(4))
dv.Sort = e.SortExpression '(Sorterar på fältnamn här)
tabelldata.DataSource = dv
tabelldata.DataBind()
End Sub
Detta fungerar bra förutom att jag får följande sorteringsordning
1
10
100
1001
101
18
25
268
3....
Hur får jag den att sortera efter 1, 2, 3, 4, 25, 30...Sv: Sortera en DataView
Om du är lite mer trixig kan du fixa det på datahämtningsnivån (där du läser upp från en XML-fil). Då ändrar du i din databärare så att kolumnen med siffrorna inte är en strängkolumn utan en integer.
Nästa steg att fixa till det hela på är då du gör sorteringen. Då skulle jag först skapa en tabell, sedan genom en algoritm binda in din xml-fildata i nyss skapade tabell. Se till att den aktuella kolumnen i tabellen är en integer. Bind sedan den nya tabellen till din nya dataview, som du binder till din kontroll. Du kan också använda defaultview på den nya tabellen om du vill och sortera den istället.
Sista förslaget är att du ändrar i din datasetdefinition så att den aktuella kolumnen inte är string utan integer och hoppas på att konverterngen kan ske automatiskt. (Detta är jag inte alls säker på).
//Mikael.NETSv: Sortera en DataView
Hej!
Detta sättt skulle vara det bästa. Jag har sökt flera timmar efter hur man gör detta men inte hittat något. Har du någon exempelkod på hur man gör det?Sv: Sortera en DataView
det finns inga scheman vid datakällan? för isf kan du läsa in xml filen med en option som läser schemat (minns inte å rak arm nu vad det optionet hette men det står i hjälpen) då borde det bli rätt.