【问题标题】:VB.net Sort File Listed GridviewVB.net 排序文件列出的 Gridview
【发布时间】:2016-02-14 01:41:54
【问题描述】:

我正在尝试对列出目录文件的网格视图进行排序。

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

http://forums.asp.net/t/963636.aspx?Default+sort+order+in+GridView sorting and paging with gridview asp.net http://forums.asp.net/t/1076872.aspx?Gridview+how+to+find+a+column+by+it+s+column+name+rather+than+it+s+Cell+index+ http://forums.asp.net/t/963636.aspx?Default+sort+order+in+GridView

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

我希望能够按文件的“值”[列:文件名]排序,因为这会给我想要的结果,但没有任何效果。

我也尝试过VB.NET Sort files in directory by alphanumeric 像这样:

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 Sorting Question,但 gridview 再次没有排序

【问题讨论】:

    标签: asp.net vb.net sorting gridview


    【解决方案1】:

    找到解决问题的方法。

    我参考了:Sorting 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()
    

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 2013-03-22
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多