将自定义输入值保存到sharepoint元数据列

时间:2018-02-23 04:48:35

标签: sharepoint sharepoint-online

我有一个名为Employees的列表,我创建了一个用于保存数据的自定义表单。海关表格有五个字段。这是使用普通的HTML输入标签创建的

  1. 姓名:(输入类型=文字)
  2. ID :(输入类型=数字)
  3. 国家/地区:(输入类型=选择包含动态选项的选项)          从元数据中添加)
  4. 状态:(输入类型=选择包含根据国家/地区字段选择动态添加的选项)
  5. ContactNo :(输入类型=数字)
  6. 提交:(输入类型=按钮)
  7. 员工详细信息中的列

    1. 名称(type = string)
    2. Id(type = number)
    3. 国家/地区(类型=具有国家/地区元数据的托管元数据)
    4. 状态(类型=具有状态元数据的托管元数据)
    5. ContactNo(type = number)
    6. 元数据管理结构

      EmployeesDetails(Term Set)
            Country(Term)
                India(Term)
                US(Term)
            State(Term)
                India(Term)
                   New Delhi(Term)
                   Karnataka(Term)
                US(Term)
                   NewYork(Term)
                   LosAngels(Term)
      

      因此,当我们保存记录时,它应保存到相应的列。我能够根据托管元数据中的国家/地区列出状态列表。如何使用javascript将记录保存到状态和国家/地区的相应列,这些列是托管元数据列?

      很多问候

1 个答案:

答案 0 :(得分:0)

去解决方案。写在es6工作包括babel转换器,将以下脚本添加到您的html文件

 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

注意输入字段位于html文件中

  1. $(“#country”)= <input type="text" id="country">
  2. $(“#state”)= <input type="text" id="state">
  3. countryList和stateList是由

    形式的对象(termId和termName)组成的数组
    countryList = [{id:"322321asdjgash", name:"India"}, {id:"32232sdasd1asdjgash", name:"US"}]
    

    状态列表将根据国家/地区的选择创建(例如:选择US,然后stateList数组将如下所示)

    stateList = [{id:"12312qwdadeqwe", name:"Los Angels"}, {id:"53127362376asghdjhas", name:"Newyork"}]
    

    const onSubmitHandler = () => {
      let countryId = countryList.find(cL => cL.name === $("#country").val()).id,
          stateId   = stateList.find(sL => sL.name === $("#state").val()).id,
          // managed metadata field
          metaObject = {
            __metadata: {"type": "SP.Data.Employee_x005f_DetailsListItem"},
            Title: $("#title").val(),
            Country:{
              __metadata: {"type": "SP.Taxonomy.TaxonomyFieldValue"},
              Label: $("#country").val(),
              TermGuid: countryId,
              WssId: -1
            },
            State:{
              __metadata: {"type": "SP.Taxonomy.TaxonomyFieldValue"},
              Label: $("#state").val(),
              TermGuid: stateId,
              WssId: -1
            }
          };
    $.ajax({
      url: _spPageContextInfo.webAbsoluteUrl +"/_api/web/lists/GetByTitle('Employee_Details')/items",
      method: "POST",
      data: JSON.stringify(metaObject),
      headers:{
        "Accept": "application/json;odata=verbose",
        "Content-Type": "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
        "IF-MATCH": "*"
      },
      success: (data) => {
        console.log("success",data);
      },
      error: (error) => {
        console.log(error);
      }
    
    })
    }