2016-02-04 23 views
0

我正在使用AjaxFileUpload進行多個文件上傳。它正在工作,但我想用文本框中的值更改目標。代碼如下這是在AjaxFileUpload1_onUploadComplete方法:Dinamic目標與AjaxFileUpload

string myDir= myDirTextBox.Text.Trim(); 
AjaxFileUpload1.SaveAs(Server.MapPath("../allarticles/"+ myDir+"/"+e.FileName)); 

我調試該項目,並在myDirTextBox寫一個名字。然後當我點擊上傳文件按鈕時,這個文本框的值始終爲空。這就是爲什麼我無法改變目的地的原因。 我已閱讀這篇文章,但它不明確:upload multiple files with ajaxFileUpload with different file ids

什麼是問題,我該如何解決它?

回答

1

當發生服務器事件時,頁面會經歷完整的頁面生命週期。 這意味着您的代碼會處理與您在瀏覽器中看到的頁面無關的新的未初始化版本的頁面。

要保存文本框的值並在以後使用它,您需要編寫一些代碼以在頁面請求之間存儲此值。這可以是簡單的JavaScript代碼附加到上傳按鈕,將AJAX的文本框值發佈到服務器。服務器會將此值存儲在會話或其他永久性存儲中。

+0

你的意思是;定義頁面提交時發生的javascript函數並將myDirTextBox.Text的值發送給服務器?我不知道我該怎麼做。 :( – mkarakoc04

+0

是的,這就是我的意思,你可以使用[jQuery](https://jquery.com/)庫來獲得文本框的值(在互聯網上有很多例子顯示如何去做),然後用[ $ .ajax()](http://api.jquery.com/jQuery.ajax/)或[$ .post()](http://api.jquery.com/jQuery.post/)方法。 –