在自定义应用程序页面中,我修改了一个文件(word doc),然后我调用SPFile.CheckOut();
然后我想直接在word中编辑modus打开该文件。 (如果用户单击该文件并选择“在Microsoft Office Word中编辑”),则会如此。
关于如何做到这一点的任何想法?
编辑:是的,我知道我不能在服务器上这样做。我正在寻找一种方法来返回一些将在客户端上打开文档的JavaScript。 (我猜在Office AcitiveX的precense中有一些内置的javascript,然后调用它)Larsi
答案 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