我想在SharePoint文档库中创建文档副本 基本上让我们假设有一个模板,每个用户都会通过点击它来打开文档。我想创建一个文件副本用户点击并打开该文件进行编辑 我尝试过使用JavaScript Client Object model of SharePoint。但这些示例用于操作列表项,但不用于文档库 任何人都可以指向我可以用来操纵文档库中文件的任何来源
一个限制是我需要使用JavaScript 对象模型或 Web服务来实现此功能。即,否服务器端代码
以下是我到目前为止的代码
请忽略格式化,因为我无法正确执行此操作并且这是在开发代码
下 <script type="text/javascript">
var clientContext = null;
var web = null;
var meetingItems = null;
var filePath = null;
var file = null;
debugger;
ExecuteOrDelayUntilScriptLoaded(Initialize, "sp.js");
function Initialize() {
clientContext = new SP.ClientContext.get_current();
web = clientContext.get_web();
this.list = web.get_lists().getByTitle("Documents");
clientContext.load(list, 'Title', 'Id');
var queryStart = "<View>"+ "<Query>"+ "<Where>"+ "<Eq>"+ "<FieldRef Name='Title'/>" + "<Value Type='Text'>";
var queryEnd = "</Value>"+ "</Eq>"+ "</Where>"+ "</Query>"+ "</View>";
camlQuery = new SP.CamlQuery();
queryMeeting = queryStart + 'DevCookbook'+ queryEnd;
camlQuery.set_viewXml(queryMeeting);
meetingItems = list.getItems(camlQuery);
clientContext.load(meetingItems);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onListLoadSuccess), Function.createDelegate(this, this.onQueryFailed));
}
function onListLoadSuccess(sender, args) {
filePath = meetingItems.get_item(0).get_path();
file = meetingItems.get_item(0);
debugger;
clientContext.load(file);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onFileLoadSuccess), Function.createDelegate(this, this.onFileFailed));
// alert("List title : " + this.list.get_title() + "; List ID : " + this.list.get_id());
// doclist();
}
function doclist()
{
var path = file.get_title();
path = meetingItems.get_item(0).get_file().get_title();
}
function onQueryFailed(sender, args) {
alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());
}
function onFileLoadSuccess(sender, args) {
debugger;
alert("List title : " + this.list.get_title() + "; List ID : " + this.list.get_id());
}
function onFileFailed(sender, args) {
alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>
答案 0 :(得分:1)
我使用了复制web服务来完成这些功能 方法是对象模型和JavaScript函数的组合
使用
显示编辑元数据弹出给用户var oDialog = { url:“../ Library /Forms / Edit.aspx?ID =”+ itemID, 标题:“创建一个新文档” }; SP.UI.ModalDialog.showModalDialog(oDialog)