2012-09-26 76 views
0

我有上有一個文檔庫Web部件在SharePoint站點頁面,一旦文件被上傳到這個庫,一些圖書館領域的需要按照頁面的URL的參數進行更新。如何將值傳遞給SharePoint列表事件接收器?

我試着用Event Receiver磁帶庫結合這樣做,才發現,我不能讓網頁的網址,或者說參數時,在事件接收器。然後Session出現在我的腦海裏,但經過詢問並搜索了很多,我只能得到HttpContextitemAdding而不是itemAdded,更糟糕的是,HttpContext.Current.Session總是給我nulll,我確信我已經在某個地方早些時候給某個會話添加了一些價值其他。

有人可以提供一些線索這光,任何幫助或建議是非常讚賞。

回答

0

事件接收器不會在頁面上下文調用。因此,您無法訪問頁面信息。我可以看到的唯一方法是編寫自定義代碼,在保存項目之前預先填充頁面的值。

+0

感謝您的建議。實際上,我在SessionAdding事件中使用Session進行單個文件上傳,剩下的問題是HttpContext.Current在多個文件上傳中無法使用,這非常令人沮喪。 –

0

SharePoint允許同步和異步事件接收器。您可以在同步接收器中訪問HttpContext和SPContext,因爲它在工作線程中運行。讀更多的accessing HttpContexthow to bind synchronous receiver programmatically

+0

感謝您的輸入,我已閱讀過此文,現在我可以在單個文件上傳中獲得HttpContext,但仍然沒有在多個文件中上傳,即使在我將事件接收器element.xml中的同步專門設置爲同步後,有什麼想法? –

+0

多文件上傳功能僅適用於IE,並且限制了產品的瀏覽器範圍。此外,它看起來像多個上傳窗口(Upload.aspx應用程序頁面)就像一個代理和文件上傳從它到服務器端執行的庫。 –

+0

是的,多個文件上傳在IE(8)中起作用,它只是HttpContext在多個文件上傳中不可用,這可以在單個文件上傳中獲得 –

0

這是一個有點晚,但參考我剛剛看到this page解決方案。

它充分利用在母版頁自定義控制和存儲信息到HttpRuntime.Cache。然後從同步事件中訪問它。

相關問題