【问题标题】:How to fix: Save filtered lookup by current user and status in sharepoint online如何修复:在线共享点保存当前用户和状态的过滤查找
【发布时间】:2019-07-04 08:59:51
【问题描述】:

我使用“SP.js CSOM SP.ClientContext”按当前用户 ID 和状态过滤了查找字段,并且成功过滤了查找。但尝试保存时出现错误“抱歉,出现问题”,相关 ID 为“9b40ec9e-1004-8000-bbff-36490b07f284”。 注意:如果我取消过滤,它会保存得很好。

我尝试使用其他过滤方法,使用 CAML 查询和 JSOM Ajax 调用。所有过滤均成功,但保存无效。

  SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);

  function sharePointReady(){
     getItemsFromView("Activity Plan", "Approved",
         function(items){
             var field = getField("select", "My Planned Tasks")

              for(var i = 0; i < items.get_count(); i++){
                  var item = items.get_item(i);
                  var node = document.createElement("option");
                  var textnode = document.createTextNode(item.get_item('Deliverable'));
                  node.appendChild(textnode);
                  field.appendChild(node);

               }
           },
           function(sender,args){ 
              console.log(args.get_message())
           }
       );
    }

  function getItemsFromView(listTitle, viewTitle,success,error){
     var ctx = new SP.ClientContext();
     var list = ctx.get_web().get_lists().getByTitle(listTitle);
     var view = list.get_views().getByTitle(viewTitle);
     ctx.load(view,'ViewQuery');
     ctx.executeQueryAsync(
         function() {
             var viewQry = "<View><Query>" + view.get_viewQuery() + "</Query> 
  </View>";
             getItems(listTitle,viewQry,success,error);
          },
          error);
   }

  function getItems(listTitle, queryText,success,error) {
     var ctx = new SP.ClientContext();
     var list = ctx.get_web().get_lists().getByTitle(listTitle);
     var query = new SP.CamlQuery();
     query.set_viewXml(queryText);
     var items = list.getItems(query);
     ctx.load(items);
     ctx.executeQueryAsync(
         function() {
             success(items);
         },
         error
    );
  }

  function getField(fieldType,fieldTitle) {
       var docTags = document.getElementsByTagName(fieldType);
       for (var i=0; i < docTags.length; i++) {
           if (docTags[i].title == fieldTitle) {
               while (docTags[i].firstChild) {
               docTags[i].removeChild(docTags[i].firstChild);
             }
             return docTags[i];
           }
       }
       return false;
  }

我希望它保存在日历事件列表中,但我收到错误消息“抱歉,出了点问题”和关联 ID“9b40ec9e-1004-8000-bbff-36490b07f284”

【问题讨论】:

    标签: javascript sharepoint sharepoint-online csom sp.js


    【解决方案1】:

    您没有为该选项设置值。所以它就像一个没有 ID 的选项,只有文本,所以需要替换这部分

      var textnode = document.createTextNode(item.get_item('Deliverable'));
                      node.appendChild(textnode);
    

    以下

      var textnode = document.createTextNode(item.get_item('Deliverable'));
                      node.value = item.get_item('ID');
                      node.appendChild(textnode);
    

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多