【发布时间】:2010-08-02 20:01:21
【问题描述】:
我有一个页面,它使用数据表和网格视图列出了特定文件夹中的所有文件(所有 PDF)。
我目前正在按文件名(通过使用数据视图)对这个表进行排序,这不是很有帮助,并且 我想要按文件创建或文件修改日期排序的文件的网格视图(如记录在Windows)。
如果这不可能,第二个选择是从文件名字符串中提取日期(这样做没问题),并根据它对数据视图/数据表或网格视图进行排序。 示例文件名:DailySalesReport-1-15-2010。我唯一的挂断是我如何排序日期,当它是一个字符串值时?转换为日期?我将如何根据这个转换后的值对整个数据集进行排序?
感谢您的任何想法!
Protected Sub PageLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim dt As New DataTable()
dt.Columns.Add("Daily Reports", Type.[GetType]("System.String"))
For Each name As [String] In System.IO.Directory.GetFiles(Server.MapPath("~\reports\pdf\")) '"
dt.Rows.Add(New Object() {name})
Next
Dim dv As DataView = dt.DefaultView
dv.Sort = dt.Columns(0).ToString + " " + "desc"
dt = dv.ToTable
Me.gvDaily.DataSource = dt
Me.gvDaily.DataBind()
End If
End Sub
Protected Sub gvDaily_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim hl As New HyperLink()
hl.NavigateUrl = "~\reports\pdfs\" + e.Row.Cells(0).Text '"
hl.Text = "Daily Report"
e.Row.Cells(0).Text = ""
e.Row.Cells(0).Controls.Add(hl)
End If
End Sub
<asp:GridView ID="gvDaily" runat="server" Height="80px" Width = "180px" CssClass="tableText"
OnRowDataBound="gvDaily_RowDataBound">
<RowStyle HorizontalAlign="center" />
</asp:GridView>
【问题讨论】:
-
请发布您的 Gridview 控件。您使用的是自动生成的字段吗?