0

午後の皆さん、

Visual Studio 2010 で開発しているサイト用に完成した簡単なファイル アップロード チュートリアルがあります。

ファイルをグリッドビューのそのドキュメントへのリンクにすることで、アップロードされたファイルを表示するグリッドビューを強化したいだけです。これにより、ユーザーはファイルをアップロードし、グリッドビューのリンクを押してファイルを表示することでファイルを表示できるようになります。

これまでの私のコードは次のとおりです...

<form id="form1" runat="server">
<div> 
<table style="width: 90%"> 
   <tr> 
      <td style="width: 100px"> Single File Upload:<br />
      <asp:FileUpload ID="FileUpload1" runat="server" /><br />
      <asp:Button ID="buttonUpload" runat="server" Text="Upload" /><br />
<br />
       <asp:GridView ID="UploadedFiles" DataSource="<%# GetUploadList() %>" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"> 
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#EFF3FB" />
        <EditRowStyle BackColor="#2461BF" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" />
      </asp:GridView>
    </td>
  </tr>
</table>
</div>
</form> 

そして、ここに.VBページがあります

Partial Class test
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        UploadedFiles.DataBind()
    End If
End Sub

    Protected Function GetUploadList() As String()
    Dim folder As String = Server.MapPath("~/Uploads")
    Dim files() As String = Directory.GetFiles(folder)
    Dim fileNames(files.Length - 1) As String
    Array.Sort(files)

    For i As Integer = 0 To files.Length - 1
        fileNames(i) = Path.GetFileName(files(i))
    Next

    Return fileNames
End Function

 Protected Sub UploadThisFile(ByVal upload As FileUpload)
    If upload.HasFile Then
        Dim theFileName As String = Path.Combine(Server.MapPath("~/Uploads"), upload.FileName)
        If File.Exists(theFileName) Then
            File.Delete(theFileName)
        End If
        upload.SaveAs(theFileName)
    End If
End Sub

Protected Sub buttonUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles buttonUpload.Click
    UploadThisFile(FileUpload1)
    UploadedFiles.DataBind()
End Sub

End Class

Protected Sub UploadThisFile(ByVal upload As FileUpload)セクション に少し余分なコードを追加する方法がよくわかりません。

Uploads ファイルで利用可能なアイテムのこの静的リストを、これらの個々のドキュメントへのリンクを保持するリストにするための助けは、大いに感謝されます。

前もって感謝します、ベティ

4

1 に答える 1

1

このようにコードをひねります:

タグを生成します。

Protected Function GetUploadList() As String()

        Dim folder As String = Server.MapPath("~/Uploads")
        Dim files() As String = Directory.GetFiles(folder)
        Dim fileNames(files.Length - 1) As String
        Dim lnk As String = String.Empty
        Array.Sort(files)

        For i As Integer = 0 To files.Length - 1
            lnk = "  <a href=""Uploads/" & files(i).ToString() & """ target=""_blank"">File</a>"
            fileNames(i) = Path.GetFileName(files(i)) & lnk
            lnk = ""
        Next

        Return fileNames

End Function

各 gridview セルにアクセスして、マークアップをデコードします。

Protected Sub UploadedFiles_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles UploadedFiles.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim tcls As TableCellCollection = e.Row.Cells

            For Each tc As TableCell In tcls
                tc.Text = Server.HtmlDecode(tc.Text)
            Next

        End If

End Sub    

ファイル名に" " タグを生成したい場合は、次の<a>ように各ファイル名を変更できます。

fileNames(i) = "<a href=""Uploads/" & Path.GetFileName(files(i).ToString()) & """ target=""_blank"">" & Path.GetFileName(files(i)) & "</a>"

それが役に立てば幸い。

于 2012-05-15T15:24:44.593 に答える