2013-07-29 69 views
1

這是這是一個自定義的WebPart 打算添加到文檔設置爲什麼SPContext.Current.Listitem爲空? *編輯的清晰度*

我無法測試其對文檔集的代碼,因爲我只能得到「SP基礎」裝在我的開發筆記本電腦上,所以文檔集不可用。相反,我創建了一個文檔庫,添加了一個文件夾,並將2個文檔放在該文件夾中。我試圖從文件夾內對其中的文檔執行此操作。

我補充說,火災這個代碼庫頁面的按鈕。 下面是當按下按鈕觸發該代碼:我得到SPContext.Current.ListItem的unhandledexception是空

void btnSubmit_Click(object sender, EventArgs e) 
    { 
**SPFolder folder = SPContext.Current.ListItem.Folder; ** 
char[] splitter = { '/' }; 
string[] folderName = folder.Name.Split(splitter); 
string filePrefix = @"Stock Analysis Demo/" + folderName[0] + "/" + folderName[0]; 

SPFile template = folder.Files[filePrefix + " - Template.docx"]; 
SPFile file; 
byte[] byteArray = template.OpenBinary(); 
    using (MemoryStream mem = new MemoryStream()) 
{ 
    mem.Write(byteArray, 0, (int)byteArray.Length); 

    using (WordprocessingDocument myDoc = WordprocessingDocument.Open(mem, true)) 
    { 
    MainDocumentPart mainPart = myDoc.MainDocumentPart; 

    foreach (Word.SdtElement sdt in mainPart.Document .Descendants<Word.SdtElement> ().ToList()) 
    { 
     Word.SdtAlias alias = sdt.Descendants<Word.SdtAlias>().FirstOrDefault(); 
     if (alias != null) 
     { 
      string sdtTitle = alias.Val.Value; 

      if (sdtTitle == "Word:Document") 
      { 
       file = folder.Files[filePrefix + " - " + sdt.InnerText + ".docx"]; 
       AddAltChunk(mainPart, sdt, file); 

在雙星號上的第一行

我已調試並可以獲得一些SPContext方法來呈現信息,它只是沒有「Listitem」是當前的。

我懷疑,帳戶的註釋,即選擇「文檔集」 使得文檔設置當前項目,如果是這樣,之前調用此代碼設置沒有選定文檔的就是爲什麼當前產品空值。

...,此外,文件夾不共享相同的屬性,文檔集,所以僅僅是「開放」的文件夾不會使「當前項目」

這是正確的嗎?

那麼,如何赫克我測試對文檔集我的自定義Web部件代碼,如果我不能遠程連接到實際的網站,我不能在我的開發手提電腦拿到文檔集?

OR ........

選擇一個文件設爲不設置當前項目。那麼什麼是更好的方式來循環通過這個文件夾內的文件?

+0

你的意思是你「之前已經按下按鈕選擇一個項目」?這是什麼類型的網頁,你有你的按鈕? –

+0

我在共享點「共享文檔」庫中。在圖書館我有一個文件夾,在文件夾我有2個單詞文件。我添加了一個web部件W/A按鈕嘗試運行此代碼(同樣,最終比賽是環通所有文檔在這個文件夾級別和合並它們),並推我已經確保了按鈕之前選擇此文件夾中的其中一個文檔。對我而言,這意味着「是最新的項目」。 – jazaddict

+0

順便說一句,這裏是有2個文件....該文件夾內的網址是有一些片這一點,我需要什麼? HTTP://ac4s-porlidesn1/Shared%20Documents/Forms/AllItems.aspx?RootFolder =%2FShared%20Documents%2FBObs%20Folder&FolderCTID = 0x0120005D7C7069F377F746B84A7EFD4DC33DCD&View = {F3637EDF-17A5-4C5A-94E1-C677D261F609}&InitialTabId = Ribbon%2EDocument&VisibilityContext = WSSTabPersistence – jazaddict

回答

0

克里斯農民,你需要在這裏的一些信貸....(或全部的話)

這裏的交易: A「文檔集」是一個「項目」。 文件夾不是。

我不得不使用第三方虛擬機,以「德同一個服務器上的」創建(非基金會)的SharePoint站點,然後在Visual Studio開發環境,所以我可以調試對文檔集。 Voila「 - 所選文檔集合的列表使上下文」看到「一個單元列表項。