点击事件调用隐藏的FileUpload控件

3

我在我的asp.net页面上有一个隐藏的FileUpload控件。

<asp:FileUpload id="FileUploadControl" runat="server" CssClass="hidden" />

当用户点击 Browse 按钮时,我希望调用这个控件。

<asp:Button runat="server" id="BrowseButton" text="browse" />

每当用户单击“浏览”按钮时,是否有可能将控件交给FileUpload控件?

编辑后:

BrowseButton_Click 事件中,我想上传文件。

 protected void BrowseButton_Click(object sender, EventArgs e)
        {
            if (FileUploadControl.HasFile)
            {
                try
                {
                    string filename = Path.GetFileName(FileUploadControl.FileName);
                    FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
                    Response.Write("<script>alert('done');</script>");
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }

            }
            else
            {
                Response.Write("<script>alert('please choose');</script>");
            }
        }

被调用的控件是什么意思。你想打开文件对话框来保存文件还是其他什么?不清楚你在问什么。 - Rahul Nikate
1个回答

3

您可以使用jQuery在客户端完成此操作。请参见下面的代码:

<asp:FileUpload id="FileUploadControl" runat="server"  CssClass="hidden" />

<asp:Button runat="server" id="BrowseButton" text="browse" OnClientClick="openfileDialog();return false"/>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script>
   function openfileDialog() {
       $("#FileUploadControl").click();
   }
</script>

我已将其添加到“浏览按钮单击事件”中。 - Rahul Nikate
它在<asp:Button runat="server" id="BrowseButton" text="browse" onclick="openfileDialog();" />上有编译错误。 - Nuke
@Nuke 抱歉,我的错误。将其更改为 OnClickOnClientClick - Rahul Nikate
不行,还是无法打开对话框。 - Nuke
2
"$("$FileUploadControl")" 应该改为 "$("#FileUploadControl")" - Chris
非常好用,谢谢 :) - djack109

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接