繁体   English   中英

VB.net排序文件列出的Gridview

[英]VB.net Sort File Listed Gridview

我正在尝试对列出目录文件的gridview进行排序。

我试图从各种资源中以各种不同的方式进行排序,如下所示:

http://forums.asp.net/t/963636.aspx?Default+sort+order+in+GridView 使用gridview进行排序和分页asp.net http://forums.asp.net/t/1076872.aspx?Gridview +如何+找到+ a +列+ by + it + s +列+名称+相当+ than + it + s + Cell + index + http://forums.asp.net/t/963636.aspx?默认 + sort + order + in + GridView

但是,每次我重新加载页面时,文件都不以升序排列。

我希望能够按文件的“值” [列:文件名]进行排序,因为这样可以给我所需的结果,但是没有任何效果。

我也尝试过VB.NET按字母数字排序目录中的文件,如下所示:

For Each filePath As String In filePaths.OrderBy(files)

 files.Add(New ListItem(Path.GetFileName(filePath), filePath))
 'files.Add(New ListItem(Path.GetFileName(filePath)

Next

但由于在圆括号内的信息是错误的,所以从filePaths.OrderBy(files)行获取了错误信息。

有什么建议么?

仅供参考: Directory.GetFiles路径出于安全目的是伪造的

Dim filePaths() As String = Directory.GetFiles("\\...\...\uploads\attachments\")

Dim files As List(Of ListItem) = New List(Of ListItem)

  For Each filePath As String In filePaths

    files.Add(New ListItem(Path.GetFileName(filePath), filePath))

  Next

   DisplaySup.DataSource = files
   DisplaySup.DataBind()
   DisplaySup.Sort("File Name", System.Web.UI.WebControls.SortDirection.Ascending)


   'If [String].IsNullOrEmpty(DisplaySup.SortExpression) Then
      'DisplaySup.Sort("SortExpression", SortDirection.Ascending)
      'DisplaySup.DataBind()
   'End If

的HTML

<asp:GridView ID="DisplaySup" runat="server" align="center" AutoGenerateColumns="False" BorderColor="Black" BorderStyle="Solid" Font-Size="Small">
<Columns>

<asp:TemplateField HeaderText = "Delete File" SortExpression="Value">
   <ItemTemplate>
      <asp:button ID = "btnDelete" cssClass = "submit-btn small" Text = "Delete" CommandArgument = '<%# Eval("Value") %>' runat = "server" OnClick = "DeleteFile" />
   </ItemTemplate>
</asp:TemplateField>


 <asp:TemplateField HeaderText = "File Name" SortExpression="Value">
   <ItemTemplate >
           <asp:LinkButton ID="lnkDownload" Text = '<%# Eval("Value").ToString().Substring(39) %>' CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "DownloadFile"></asp:LinkButton>
      </ItemTemplate>
 </asp:TemplateField>
 </Columns>

 <HeaderStyle BackColor="#BDBDAE" Font-Underline="False" 
  CssClass="linkNoUnderline" HorizontalAlign="Left" />
</asp:GridView>

更新:我还尝试了下面的示例GridView排序问题 ,再次gridview不排序

找到了解决我的问题的方法。

我引用了: 对Directory.GetFiles()进行排序

并执行以下操作对目录进行预排序,然后在我的gridview中列出文件:

Dim filePaths() As String = Directory.GetFiles("\\...\uploads\attachments\")

'Sort the directory
Dim FilesStr() As String
FilesStr = filePaths
Array.Sort(FilesStr)

'Get each file
Dim files As List(Of ListItem) = New List(Of ListItem)

For Each filePath As String In filePaths

  files.Add(New ListItem(Path.GetFileName(filePath), filePath))
Next

DisplaySup.DataSource = files
DisplaySup.DataBind()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM