我目前正在忙着创建一个简单的网站。文件被复制到我的FTP服务器上。在我的网页上有一个文本框,按钮和gridview。
一切正常,当我加载我的网站时,在你搜索某些内容之前看不到gridview。当我没有搜索按钮的搜索代码时,我编码将每个文件加载到网格视图中。
我现在想要在单击搜索按钮时添加一些过滤,但我不知道如何做到这一点,而Internet只显示如何使用数据库,但我正在使用New List对象。
请参阅下面的示例代码。 (这当前将所有文件添加到gridview中)
Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Uploads/IIC/"))
Dim dt As New DataTable
dt.Columns.Add("FileName", GetType(String))
dt.Columns.Add("FilePath", GetType(String))
dt.Rows.Clear()
For Each filePath As String In filePaths
dt.Rows.Add(Path.GetFileName(filePath), filePath)
Next
If GridView2.Columns.Count > 2 Then
For x = 2 To GridView2.Columns.Count - 1
GridView2.Columns.RemoveAt(2)
Next
End If
Dim FileNameCol As New BoundField
Dim FilePathCol As New BoundField
FileNameCol.DataField = "FileName"
FileNameCol.HeaderText = "FileName"
FilePathCol.DataField = "FilePath"
FilePathCol.DataField = "FilePath"
GridView2.Columns.Add(FileNameCol)
GridView2.Columns.Add(FilePathCol)
GridView2.DataSource = dt.Select("FileName LIKE '%" & TextBox1.Text & "%'")
GridView2.DataBind()
任何向我展示如何过滤gridview的帮助都会对我有所帮助,因为我以前没有真正使用过列表。
注意:gridview不使用数据库
Gridview2的设计器代码
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" PageSize="10" AllowPaging="true"
EmptyDataText = "No files uploaded" Width="251px">
<Columns>
<asp:BoundField DataField="Text" HeaderText="FileName" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" Text = "Download" CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "DownloadFile"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
答案 0 :(得分:0)
您可以使用DataTable
来实现这一目标。
它有一个.Select()
函数,您可以在其中过滤数据表中的特定记录(如查询中的WHERE
部分,而是从数据库中,您在数据表中使用它)
试试这个:
Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Uploads/IIC/"))
Dim dt As New DataTable
dt.Columns.Add("FileName", GetType(String))
dt.Columns.Add("FilePath", GetType(String))
dt.Rows.Clear()
For Each filePath As String In filePaths
dt.Rows.Add(Path.GetFileName(filePath), filePath)
Next
If GridView2.Columns.Count > 1 Then
For x = 1 To GridView2.Columns.Count - 1
grdApproval.Columns.RemoveAt(1)
Next
End If
Dim FileNameCol As New BoundField
Dim FilePathCol As New BoundField
FileNameCol.DataField = "FileName"
FileNameCol.HeaderText = "FileName"
FilePathCol.DataField = "FilePath"
FilePathCol.HeaderText = "FilePath"
GridView2.Columns.Add(FileNameCol)
GridView2.Columns.Add(FilePathCol)
GridView2.DataSource = dt.Select("FileName LIKE '%" & txtYourSearchBox.Text & "%'")
GridView2.DataBind()