c# - 中继点击按钮触发 ASP.NET 文件上传

标签 c# jquery css

在 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/

相关文章:

html - 无法让 Bootstrap 导航正确显示

css - 二级菜单在 Drupal 7 中不正确 float

c# - XML 字符串数组反序列化

c# - ASP.NET MVC Controller 扩展方法使日志对所有 Controller 可用

jquery - Bootstrap 按钮下拉菜单不在按钮下方

javascript - 如何在jquery中对动态生成的表进行排序

C#:为什么是 'bool' 而不是 'boolean'

c# - LINQ 中的动态 where 条件

javascript - JS 将键盘快捷键绑定(bind)到函数

css - 保护库组件不被消费者设计样式的标准方法