2013-01-18 91 views
0

我有一个带有FileUpload控件的asp.net页面,以便用户可以浏览以选择文件。我想分配一个默认值,这样用户就不需要浏览,除非他们正在做一些超出规范的事情,但是文件属性是只读的。ASP.NET调用JavaScript函数OnClick

因此,我将FileUpload控件的Visible属性设置为false,并放入文本框和按钮中。在那个文本框中,我把我想要的默认路径。当用户点击按钮时,我希望它打开单击FileUpload控件的浏览窗口。我有这样的:

<head> 
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"/> 
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"/> 
<meta content="JavaScript" name="vs_defaultClientScript"/> 
<meta content="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema"/> 

<script src="common.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
     function fileBrowse() 
     { 
      document.getElementById('FileBrowse').click(); 
     } 
    </script> 

</head> 

然后在代码中,我有这样的:

Protected Overrides Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    MyBase.Page_Load(sender, e) 

    Me.btnINI.Attributes.Add("onclick", "javascript:fileBrowse();") 
End Sub 

FileBrowse是页面上的FileUpload控件的名称。 btnINI是我想要启动浏览的按钮的名称。

当我点击按钮没有任何反应 - 没有错误,没有任何启动。任何帮助将非常感激!

+0

查看http://stackoverflow.com/questions/1133058/emulate-a-file-upload-click-in-jquery –

+0

您向我们展示*服务器端代码*,但描述*客户端问题*。 ASP生成的HTML是什么?你的问题是你想要的HTML不能做你认为应该做的事,还是你不能从ASP生成你想要的HTML? – Quentin

+0

这看起来HTML是正确的。当我加载页面时显示:

回答

1

我的猜测是id不正确。尝试将FileBrowser控件的ClientID作为参数传递给javascript函数。 另外,检查函数是否实际上是用警告框调用的。

+0

我修改了功能: function fileBrowse(ID) {document.getElementById(ID).click()return false; } 然后代码: Me.btnINI.Attributes.Add( “点击”, “JavaScript的:fileBrowse( 'FileBrowse');”) 我得到相同的结果。 –

+0

Me.btnINI.Attributes.Add(“onclick”,“javascript:fileBrowse('”&FileBrowse.ClientID & "');“) – fscan

+0

完美工作!非常感谢! –

0

我敢肯定你不能通过javascript在文件选择对话框中设置任何值。这样做有严重的安全问题,浏览器会阻止它。