2012-02-22 65 views
0

在我的Web應用程序,我有,我有對BTN點擊我打電話,一個ASCX web用戶控件我使用的是JavaScript的,通過它我試圖在同一發佈的數據按鈕,點擊主aspx頁面ascx,因爲我知道我們可以在ascx頁面發佈數據..但我想發佈如何可能嗎?如何將數據從ASCX javascript發佈到相同的ascx控件?

xhr.open('POST', '../test.ascx?Id=' + <%=Id%>, true); //Id is the property in ascx page 
xhr.setRequestHeader('FILENAME', file.name); 
xhr.send(file); 

的OnInit和..

 if (!string.IsNullOrEmpty(Request.Headers["FileName"])) 
     { 
      string Name = Request.Headers["FileName"].ToString(); 
      Stream Stream1 = Request.InputStream; 
      Add(Name, Stream1, Id); 
     } 
+3

ASCX ???你不能訪問用戶控件,因爲它們不是從外部路徑訪問..你應該使用HttpHandlers的/ webMethods的..看到這個http://stackoverflow.com/questions/579024/calling-an-ascx-page-method-使用-jquery – 2012-02-22 04:48:48

+0

那麼我怎麼能發送文件到處理程序? – Rocky 2012-02-22 04:54:37

回答

0

我們不能直接發佈到ascx控件。所以我用處理程序來解決這個問題..

xhr.open('POST', '../Controls/test1.ashx?Id=' + '<%=Id%>', true); 
0

你應該嘗試使用一些jQuery插件,這將有助於你給的進展和處理其他事件,而上傳文件異步..它http://blogs.technet.com/b/sateesh-arveti/archive/2010/11/19/ajax-file-upload-using-jquery.aspx

好文章

雖然有類似的SO問題你應該看看:

How can I upload files asynchronously?

此致敬禮。

+0

我沒有使用任何BTN點擊,我正在使用拖放功能。 – Rocky 2012-02-22 05:13:48

+0

已經實現拖放自己?或使用html5?如果你可以使用jquery插件,你應該使用http://blueimp.github.com/jQuery-File-Upload/它支持拖放和多文件上傳。 – 2012-02-22 05:28:34

+0

我已經實現了使用ajax/jQuery/jquery-1.6.1.min.js插件拖放我的self..am插件 – Rocky 2012-02-22 06:42:21

1

您不能直接發佈到ascx控件。您應該發佈到包含該控件的aspx頁面。該頁面將自動創建一個包含您在頁面上靜態聲明的控件的樹(在標記中)。動態控制需要特別小心。

之後,通常你會在解析的早期事件處理程序傳入查詢字符串或POST數據,如的Page_Load(),讓你需要對指定控制任何來電。