0

フォルダーからいくつかのファイルを表示するスクリプトがあります。

コードビハインド

Sub fileinfo()
    Dim objDI As New System.IO.DirectoryInfo(Server.MapPath("upload/files/"))
    Dim allFile As New ArrayList()
    allFile.AddRange(objDI.GetFiles("*.png"))
    allFile.AddRange(objDI.GetFiles("*.jpg"))
    allFile.AddRange(objDI.GetFiles("*.bmp"))
    allFile.AddRange(objDI.GetFiles("*.gif"))
    allFile.AddRange(objDI.GetFiles("*.pdf"))
    allFile.AddRange(objDI.GetFiles("*.doc"))
    allFile.AddRange(objDI.GetFiles("*.docx"))

    Me.showfiles.DataSource = allFile
    Me.showfiles.DataBind()
End Sub

メインコード

<ul class="thumbnails">
   <asp:DataList ID="showfiles" runat="server" RepeatColumns="6" CellPadding="10" RepeatLayout="flow">
         <ItemTemplate>
               <li class="span2"><a class="thumbnail" href="#"><asp:ImageButton ID="folderfiles" runat="server" ImageUrl='<%# string.Format("upload/files/{0}", DataBinder.Eval(Container.DataItem,"Name")) %>' ToolTip='<%# Bind("Name") %>' height="82" width="119" /></a></li>
         </ItemTemplate>
  </asp:DataList>

画像では問題なく動作しますが、pdf ファイルのようなドキュメントを追加すると、これが得られます。 http://i.imgur.com/vPVvb.png

次に、テキストボックスを追加します。if statsment または追加できるものを追加するにはどうすればよいですか。

.pdf ファイルの場合は pdficon.jpg

.doc ファイルの場合は docicon.jpg

zip ファイルの場合は zipicon.jpg

ファイルが画像の場合は今のように機能し、ファイルがpdfまたはdocファイルの場合はアイコン画像を使用して表示します!?

……編集……編集……編集…………編集…………編集………編集

Thx その作品 http://i.imgur.com/6S4k7.png

しかし、取得したファイルの1つをクリックすると、エラーページが表示され、エラー番号は表示されませんが、テキストが表示されます。

.......... <%@ Page EnableEventValidation="true" %> ClientScriptManager.RegisterForEventValidation .....

画像/pdf ファイルをダウンロード/表示できません。

4

2 に答える 2

2

次のように画像のURLを返すメソッドを実装できます。

Private Function getImageUrl(filename As String) As String

    Select Case Path.GetExtension(filename)
        Case "pdf"
            Return "pdficon.jpg"
        Case "doc"
            Return "docicon.jpg"
        Case "zip"
            Return "zipicon.jpg"
    End Select

    Return String.Format("upload/files/{0}", filename)
End Function

マークアップで使用します。

.....。 ImageUrl='<%# getImageUrl(DataBinder.Eval(Container.DataItem,"Name")) %>'_

于 2012-08-26T14:39:58.487 に答える
0

異なるコレクションでそれらの異なるファイルタイプを取得し、それらを別々に(つまり、特定のサムネイルを使用して別々の表示ループで)処理する方がクリーンでしょうか?

または、リストではなく辞書を使用して、ファイルタイプを保存し、表示する画像を決定するときにファイルタイプを照会できるようにします。

于 2012-08-26T14:41:47.783 に答える