从codebehind打开word文档 - 例如带有一些javascript的Response.Write

时间:2009-12-02 14:03:24

标签: sharepoint

在自定义应用程序页面中,我修改了一个文件(word doc),然后我调用SPFile.CheckOut();

然后我想直接在word中编辑modus打开该文件。 (如果用户单击该文件并选择“在Microsoft Office Word中编辑”),则会如此。

关于如何做到这一点的任何想法?

编辑:是的,我知道我不能在服务器上这样做。我正在寻找一种方法来返回一些将在客户端上打开文档的JavaScript。 (我猜在Office AcitiveX的precense中有一些内置的javascript,然后调用它)

Larsi

4 个答案:

答案 0 :(得分:2)

我刚刚对Firebug进行了一些调查,发现这个附加到“在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 :(得分:0)

这实际上不太可能,主要是因为当您希望客户端的机器打开单词时,代码隐藏在服务器上运行。您可以做的最好的事情是使用word文档的URL发送元刷新 - 当用户的浏览器点击时会打开该文件。

HTTP://sharepoint/sp.doc“&GT;

快速警告:确保您将文件作为当前用户检出,否则您的非管理员用户将无权打开该文件。

答案 2 :(得分:0)

正如UJ所说,你不能在服务器上用文字打开它。

但您可以使用open xml在服务器上编辑文档。见:http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

答案 3 :(得分:0)

为了在没有任何代码的情况下编辑服务器上的文档,您需要安装Microsoft Office Wep Apps