2013-01-18 121 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在文件選擇對話框中設置任何值。這樣做有嚴重的安全問題,瀏覽器會阻止它。