2009-12-02 52 views
1

在自定義應用程序頁面中,我修改文件(word doc),然後我調用SPFile.CheckOut();從代碼隱藏打開word文檔 - 例如Response.Write與一些javascript

然後我想直接用word中的edit modus打開那個文件。 (如果用戶點擊該文件並選擇「在Microsoft Office Word中編輯」)

有關如何做到這一點的任何想法?

編輯:是的,我知道我不能在服務器上。我正在尋找一種方法來返回一些JavaScript,將打開客戶端上的文檔。 (我想有一些JavaScript建在檢查一處AcitiveX的precense,然後調用它)

Larsi

回答

2

我只是做了一些調查使用Firebug,發現這附在「E在Microsoft Word中點擊「鏈接。

<span type="option" text="Edit in Microsoft Office Word" onmenuclick="editDocumentWithProgID2('/sites/I2Validation/KitTestSite/Kits%20Test%20Site%20Documents/Here%20is%20Kit.doc', '', 'SharePoint.OpenDocuments', '0', 'http://servername/sites/I2Validation/KitTestSite', '0')" iconsrc="/_layouts/images/icdoc.gif" iconalttext="" sequence="240" id="ID_EditIn_Microsoft Office Word"/> 

我在想,你也許可以在頁面加載後以編程方式調用editDocumentWithProgID2()

在core.js發現這一點:

function editDocumentWithProgID2(strDocument, varProgID, varEditor, bCheckout,strhttpRoot, strCheckouttolocal) 
{ 
    var errorCode=editDocumentWithProgIDNoUI(strDocument, varProgID, varEditor, bCheckout,strhttpRoot, strCheckouttolocal); 
    if (errorCode==1) 
    { 
     alert(L_EditDocumentRuntimeError_Text); 
     window.onfocus=RefreshOnNextFocus; 
    } 
    else if (errorCode==2) 
     alert(L_EditDocumentProgIDError_Text); 
} 
+1

@Kit - 你是否在Share Point網站或外部網站上執行此操作?我問,因爲我需要類似的功能,但從外部網站鏈接到共享點文檔庫。 – 2013-01-04 16:54:42

+0

@RichardB它不能在外部網站上工作,因爲它引用了默認情況下僅包含在SharePoint頁面中的JavaScript。 – 2013-01-04 19:43:41

+0

啊。我們問題的根源最終成爲微軟禁用的插件。 – 2013-01-07 17:09:20

0

這是不是真的可能,主要是因爲代碼隱藏在服務器上運行,而你希望客戶的機器打開文字。你可以做的最好的方法是發送一個元文件,用word文檔的URL進行元刷新 - 當用戶的瀏覽器打開時會打開文件。

HTTP://sharepoint/sp.doc「>

快速警告:請確保您簽出該文件作爲當前用戶,否則你的非管理員用戶將沒有權限打開該文件。

+0

嗨!謝謝回答。爲了更好的理解,我更新了這個問題。 順便說一句,我認爲運行集成安全性SPFile.Checkout()的網站將執行當前用戶的權限? – Larsi 2009-12-03 07:26:09

0

爲了編輯服務器上的文件,你無需任何代碼,您需要安裝Microsoft Office應用程序的WEP