2013-04-03 37 views
1

我創建了一個網頁,並在它,我已經創建了一個瀏覽按鈕名稱爲「BrowseButton」,並命名爲「BrowseTextBox」建立在C#中的網頁瀏覽按鈕

一個文本框的後端代碼是:

protected void BrowseButtonClick(object sender, EventArgs e) 

     { 
      FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); 
      OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
      openFileDialog1.ShowDialog(); 
      BrowseTextBox.Text = openFileDialog1.FileName; 
     } 

,但我得到一個ThreadStateException,我不知道如何處理它....

+0

對不起這條線是comment- – rajnivk

+0

的FolderBrowserDialog的FolderBrowserDialog =新的FolderBrowserDialog – rajnivk

+0

當前線程必須設置爲單線程單元(STA)模式才能進行OLE調用。確保您的Main函數具有標記的STAThreadAttribute。只有在調試器連接到進程時纔會引發此異常。 – rajnivk

回答

3

你說你正在創建一個網頁,但你的代碼使用OpenFileDialog類無論從Windows窗體或WPF庫。這些對話框不能用於Web應用程序 - 它們用於編寫Windows應用程序時使用。你看到的線程錯誤是這個直接的結果。

你不能做任何有關此異常:有沒有辦法在一個Web應用程序使用這些類。相反,如果您想上傳文件,您應該查看HTML的<input type="file"元素,或者查看ASP.NET中的FileUpload control

+0

請告訴做什麼呢? – rajnivk

+0

如何使用fileupload? – rajnivk

+1

@rajnivk:我建議你按照我的(非常有幫助)包含在我的答案中的鏈接,看看它說了什麼。該頁面上有四個示例。然後,如果您仍然遇到問題,您應該針對您遇到的具體問題發佈一個新問題。 –

0

這是行不通的,因爲彈出FolderBrowserDialog的唯一方法是Server-Side,所以程序會一直等待輸入。

您應該使用this Web Control適合您的需要更好。

從MSDN Exmple

​​

我不認爲我能解釋它比他們更好......

+0

那我該怎麼辦?那麼請幫助 – rajnivk

+0

首先,爲什麼你要上傳一個文件夾到你的網頁?你真的想上傳嗎?或者你只需​​要文件的名稱? – phadaphunk

+0

我希望爲了兩個目的而使用 – rajnivk