Hej Jag har gjort detta en gång. Fritt efter minnet, du ska använda Array.Sort(dinArray) <code> Jag förstår inte riktigt och får det inte att fungera...Sortera EventLog
Jag har en utskrift av EventLoggen som jag skulle vilja sortera efter datum fallande, inte stigande som det är automatiskt.
Jag använder koden:
<code>
Function BindGrid()
Dim Diag As New Diagnostics.EventLog
Diag.Log() = "Application"
dg_System.DataSource = Diag.Entries
dg_System.DataBind()
End Function
Sub dg_System_Changed(ByVal sender As System.Object, ByVal e As DataGridPageChangedEventArgs)
'Set CurrentPageIndex to the page the user clicked.
dg_System.CurrentPageIndex = e.NewPageIndex
'Rebind the data.
BindGrid()
End Sub
</code>
där "dg_System" är en DataGrid med koden:
<code>
<asp:DataGrid id="dg_System" runat="server"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
PagerStyle-NextPageText="Next"
PagerStyle-PrevPageText="Prev"
OnPageIndexChanged="dg_System_Changed"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana" Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AllowSorting="True"
AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn HeaderText="TOF" DataField="EntryType" />
<asp:BoundColumn HeaderText="Date/Time" DataField="TimeGenerated" />
<asp:BoundColumn HeaderText="Source" DataField="Source" />
<asp:BoundColumn HeaderText="Event ID" DataField="EventID" />
</Columns>
</asp:DataGrid>
</code>
Ska jag kanske göra på något annat sätt? Hur i så fall?
Jag är ganska ny på asp.net, så alla tips är välkomna.
//PeterSv: Sortera EventLog
med en custom Implements IComparer.Compare
det står här hur man skriver en sån: http://samples.gotdotnet.com/quickstart/howto/doc/sort.aspx
Det är inte helt självklart i början kanske men du lär hitta många exempel på nätet, sök efter
Implements IComparer.Compare
t.ex.Sv: Sortera EventLog
Dim Emsgs As Array = Array.CreateInstance(GetType(EventLogEntry), ev.Entries.Count)
Dim ec As New EventLogGeneratedComparer
ev.Entries.CopyTo(Emsgs, 0)
Array.Sort(Emsgs, ec)
Public Class EventLogGeneratedComparer
Implements IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
Implements System.Collections.IComparer.Compare
Dim e1 As EventLogEntry = CType(x, EventLogEntry)
Dim e2 As EventLogEntry = CType(y, EventLogEntry)
Return Date.Compare(e2.TimeGenerated, e1.TimeGenerated)
'baklänges compare för att få senaste först
End Function
End Class
</code>Sv:Sortera EventLog
Ska det vara ev.Entries.CopyTo(Emsgs, 0)? inte ec.Entries.CopyTo(Emsgs, 0)?
Finns det verkligen något som heter "EventLogEntry"? Inte enl. Visual Studio .net 2003 i alla fall...
Jag provade med bara "EventLog", för det finns, men där finns ingen ".TimeGenerated" i den.
//Peter