2016-08-26 3 views
1

私は現在、単純なウェブサイトの作成に忙しいです。ファイルは私のFTPサーバーにコピーされます。私のウェブページには、テキストボックス、ボタン、グリッドビューがあります。グリッドビューをフィルタリングするためのリストを使用したテキストボックスとボタンによるグリッドビュー

すべてがうまくいきました。私のウェブサイトをロードすると、グリッドビューは表示されません。検索ボタンがない場合は、グリッドビューにすべてのファイルをロードするようにコード化しました。 。

検索ボタンをクリックしたときにフィルタリングを追加したいのですが、どのように行うのかについての手がかりがなく、インターネットではデータベースで行う方法のみを示しますが、新しいリストオブジェクトを使用しています。

下のサンプルコードを参照してください。

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にすべてのファイルを追加します)。

注: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

「データテーブル」はどうですか?データベースクエリの 'WHERE'部分のように、' .Select() 'でフィルタを行うことができます。 –

答えて

0

のためのデータベース

デザイナーコードを使用していないあなたはDataTableを使用していることを達成することができます。

それは(クエリでWHERE一部のようにではなく、データベースから、あなたはDataTableのそれを使用している)を使用すると、データテーブル内の特定のレコードをフィルタリングすることができている.Select()機能を持ってい

はこれを試してみてください。

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() 
+0

Gridview2.Databind()でこのエラーが発生しました 'Text'という名前のフィールドまたはプロパティが選択されたデータソースに見つかりませんでした。私の最初の列の名前はファイル名です、私はすでにコード化した次の列にダウンロードリンクを持っています –

+0

私のテストサイトhttp://196.41.127.28/plesk-site-preview/www.oddydocs.coへのリンクです.za/196.41.127.28/ –

+0

サイトが公開されています.I Stil初めてエラーが発生しました。 \t Gridview2.Databind() 'でこのエラーが発生しました' Text 'という名前のフィールドまたはプロパティが選択されたデータソースに見つかりませんでした.....検索が見つかったときにのみエラーが発生します –

関連する問題