2012-11-13 51 views
0

大家好,我有vb代碼下面,我打電話時,有人點擊鏈接。呼叫功能<a>標籤

Private Sub DownloadFile(ByVal fname As String, ByVal forcedownload As Boolean) 
    Dim flpth As String 
    Dim fnm As String 
    Dim ext As String 
    Dim tp As String 

    flpth = System.IO.Path.GetFullPath(Server.MapPath(fname)) 
    fnm = System.IO.Path.GetFileName(flpth) 
    ext = System.IO.Path.GetExtension(fnm) 
    tp = "" 

    If Not IsDBNull(ext) Then 
     ext = LCase(ext) 
    End If 

    Select Case ext 
     Case ".doc", ".rtf" 
      tp = "application/msword" 
     Case ".pdf" 
      tp = "application/pdf" 
     Case ".zip" 
      tp = "application/zip" 
    End Select 

    If (forcedownload) Then 
     Response.Clear() 
     Response.ClearContent() 
     Response.ClearHeaders() 
     Response.ContentType = tp 
     Response.AppendHeader("Content-Disposition", "attachment; filename=" + fnm + ext) 
     Response.TransmitFile(flpth) 
     Response.Flush() 
     Response.End() 
    End If 

End Sub 

我打算在下面的代碼中調用上面的代碼,但它不工作。請任何身體幫助。

<a id="Click" runat="server" href="#" onclick="DownloadFile('files/Notes.doc',True)">Click here</a> 

回答

2

正確的方法是通過拖動來添加一個link button拖放到頁面上,然後去這個按鈕的屬性,並添加的OnClick methodo,這也是創建代碼一種自動功能背後,你在哪裏運行DownloadFile

1

1)嘗試使用LinkButton

2)你不能傳回參數,你必須在服務器上獲取數據。

+0

太好了。謝謝 – kami

0

如果使用錨標記作爲服務器控件,您將需要設置onServerClick事件。您可以將自定義標籤添加到您的錨點以便使用。

<a id="hypDownload" href="javascript:void(0);" runat="server" onserverclick="DownloadFile()" filename="files/Notes.doc" forcedownload="true"></a> 

Private Sub hypDownload_ServerClick(sender As Object, e As EventArgs) Handles hypDownload.ServerClick 
    Dim filename As String = hypDownload.Attributes("filename") 'Also: CType(sender, HtmlAnchor).Attributes("filename") 
    Dim forcedownload As Boolean = hypDownload.Attributes("forcedownload").ToString().ToLower() = "true" 
    DownloadFile(filename, forcedownload) 
End Sub 
+0

感謝您的幫助 – kami

0

將此javascript放在ASPX頁面上。

<script type="text/javascript"> 
    function DownloadFile() {  
     document.getElementById(<%= DownloadFile.ClientID%>).click(); 
    }  
</script> 

地方有隱藏切勿將按鈕的顯示樣式設置爲隱藏的的JavaScript將無法找到網頁上的按鈕顯示樣式div標籤中的按鈕。

<div style="display= hidden;"> 
    <asp:button id="DownloadFile" runat="server" />  
</div> 

然後,如下圖所示設置你<a>標籤:

<a href="javascript:DownloadFile();">link text</a> 

然後用你的子程序作爲ASP Click事件:按鈕

說了這麼多,在asp:LinkBut​​ton的選項會導致代碼少得多。