2011-10-04 106 views
1

我想在SharePoint文檔庫中創建文檔的副本。
基本上讓我們假設有一個模板,每個用戶將通過點擊打開文檔。我想創建一個文件用戶的副本點擊並打開該文件進行編輯。
我試過使用JavaScript Client Object model of SharePoint。但是這些例子是用於處理列表項的,但不適用於文檔庫。
任何一個可以請點我可以用它來操作文件在文檔庫使用JavaScript在SharePoint 2010文檔庫中創建文檔的副本

一個限制是我需要使用JavaScript 對象模型Web服務來實現這一目標功能的任何資源。即,NO服務器端代碼

以下是我到現在爲止

  1. 我打算用的是複製現有的文件對象的方法的代碼
  2. 將其重命名和
  3. 保存到其他文檔庫

請忽略格式化,因爲我不能夠正確地做到這一點,這是正在開發的代碼

<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

凡是對列表項工作應該爲一個文件工作太,對用戶輸入檢查?我不確定2010年的情況,但這是Sharepoint2007的情況。 –

+0

嘗試過相同的想法,但我無法找到相關的方法來操作文檔和任何有用的文檔 –

回答

1

我用複製web服務來做功能。
做法是對象模型的組合和JavaScript函數

  1. 複製從模板庫中的文件。
  2. 查看文件中使用 「CheckoutDocument」 功能
  3. 添加元數據在後臺
  4. 顯示編輯元數據使用

    VAR oDialog = { URL彈出用戶:」 ../Library/Forms/Edit .aspx?ID =「+ itemID, title:」創建一個新文檔「 }; SP.UI.ModalDialog.showModalDialog(oDialog)

  5. 後的文件
相關問題