0
4

5 回答 5

2

正确的做法是添加一个链接按钮,将其拖放到页面中,然后转到该按钮的属性并添加 OnClick 方法,也就是在后面的代码上创建一个自动化功能,在其中运行 DownloadFile

于 2012-11-13T17:15:13.190 回答
1

1)尝试使用LinkBut​​ton

2)你不能传回参数,你必须在服务器上获取数据。

于 2012-11-13T17:15:27.517 回答
1

如果您对它必须直接作为锚标记这一事实很灵活,并且不介意将其创建为“按钮”,则可以使用以下内容:

调用代码隐藏函数的代码隐藏中的 ASP.Net 按钮

如果没有,这里有一个使用 JavaScript 和回发来实现类似功能的解决方案。我个人认为使用上述按钮解决方案会更灵活,更接近你想要的。

我可以从 div onclick 事件中调用函数背后的代码吗?

于 2012-11-13T17:17:48.987 回答
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
于 2012-11-13T17:21:39.520 回答
0

将此 javascript 放在 ASPX 页面上。

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

将按钮放置在显示样式隐藏的 div 标记中 不要将按钮的显示样式设置为隐藏,因为 javascript 将无法在页面上找到该按钮。

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

然后设置你<a>的标签,如下所示:

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

然后使用您的子例程作为 asp:button 的点击事件

说了这么多,asp:linkbutton 选项会减少很多代码。

于 2012-11-18T14:31:44.873 回答