中继单击按钮以触发ASP.NET文件上载
本文关键字:ASP NET 文件 上载 单击 按钮 | 更新日期: 2023-09-27 18:26:34
在ASP.NET C#网站中,我有一个将文件上传到服务器的输入。为了克服无法对type=file的输入进行样式化的问题,我创建了一个样式化的div,它看起来像输入,但实际上只是将消息中继到实际的输入,实际的输入显示:none是不可见的。
我的问题:中继消息不起作用,即,当我将点击消息中继到实际输入时,文件永远不会上传(什么都不会发生)。我知道这个按钮有效,因为如果我点击实际输入,它会成功上传文件。
是否有一些ASP.NET安全性阻止我执行此操作?出了什么问题?我如何才能实现我想要做的事情:
有一个样式输入,其中type=file(不是无聊的浏览按钮)&将点击传递到实际输入
我的实际输入有效:
<input id="fileUpload" type="file" Runat="server" NAME="fileUpload"/>
<asp:button id="btnSave" OnClick="bt1Clicked"
runat="server" Text="Upload File"></asp:button>
<asp:label id="lblMessage" runat="server"></asp:label>
我的风格按钮:
<a onclick="$(''btnSave'').click(); return false;" href="#">test</a>
不确定你的目标是什么,但这应该适用于
<a onclick="$('<%= btnSave.ClientID %>').click(); return false;"
href="#">test</a>
为什么?因为在默认情况下,asp.net为控件提供自己的id,该id由ClientIdMode定义。另请参阅System.Web.UI
.Control.ClientID
在我看来,这将是一个更整洁的解决方案:
<a id="btnRelay" href="#">test</a>
将其与JQuery单独连接,这样您的代码就不会被html破坏。
$('btnRelay').click(function(event){
event.preventDefault();
$('<%= btnSave.ClientID %>').click()
}