在 ASP.NET C# 网站中,我有一个将文件上传到我的服务器的输入。为了克服无法为 type=file 的输入设置样式 的问题,我创建了一个样式化的 div,它看起来像输入但实际上只是将消息中继到具有 display: 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,它由 ClientIdMode 定义.另请参阅 System.Web.UI
.Control.ClientID
以我的愚见,这将是一个更简洁的解决方案:
<a id="btnRelay" href="#">test</a>
将它与 JQuery 分开连接,这样您的代码就不会与您的 html 混淆。
$('btnRelay').click(function(event){
event.preventDefault();
$('<%= btnSave.ClientID %>').click()
}
关于c# - 中继点击按钮触发 ASP.NET 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561322/