繁体   English   中英

如何在JavaScript中使用Base64String值设置Dynamics CRM / 365字段

[英]How to set a Dynamics CRM/365 field with Base64String value in JavaScript

我想使用文档的基数64字符串值设置“ base64string”,然后稍后再使用该值并将文档加载到sharepoint(我已经有了通过控制台应用程序进行操作的c#代码)。

我的以下代码似乎无法正常工作,基本上从未设置过该值,base64string字段是一个包含100万个字符的多行。

<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  Please select a file and then hit Evaluate:
  <br/>
  <input id="file" type="file" />
  <button id="button">Upload        
    <script>           
      document.getElementById('button').addEventListener('click', function() {
        var files = document.getElementById('file').files;
        if (files.length > 0) {
          getBase64(files[0]);
        }
      });

      function getBase64(file) {
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function () {        
          Xrm.Page.getAttribute("base64string").setValue(reader.result);
        };
        reader.onerror = function (error) {};
      }        
    </script>      
</body>
</html>

Xrm.Page.getAttribute("base64string") ,您确定base64string是字段名称吗? 如果它是一个自定义字段,则应具有一个前缀,例如abc_base64string

而且,HTML Web资源无法直接访问Xrm.Page

从HTML Web资源引用其他Web资源

添加到表单的HTML Web资源不能使用由表单中加载的JavaScript库定义的全局对象。 HTML Web资源可以通过使用parent.Xrm.Pageparent.Xrm.Utility与表单中的Xrm.PageXrm.Utility对象进行交互 ,但是由表单脚本定义的全局对象将无法使用父级进行访问。

我相信您的代码应该看起来像这样:

reader.onload = function () {        
    parent.Xrm.Page.getAttribute("abc_base64string").setValue(reader.result);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM