Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中使用Base64String值设置Dynamics CRM/365字段_Javascript_Dynamics Crm_Dynamics 365 - Fatal编程技术网

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

如何在JavaScript中使用Base64String值设置Dynamics CRM/365字段,javascript,dynamics-crm,dynamics-365,Javascript,Dynamics Crm,Dynamics 365,我想用文档的base64字符串值设置“base64string”,然后我将稍后获取该值并将文档加载到sharepoint上(我已经有了通过控制台应用程序进行此工作的c#代码) 我下面的代码似乎不起作用,基本上从未设置值,字段base64string是一个包含100万个字符的多行 <html> <head> <meta charset="utf-8"> </head> <body> Please select a file and

我想用文档的base64字符串值设置“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>

请选择一个文件,然后点击评估:

上传 document.getElementById('button')。addEventListener('click',function(){ var files=document.getElementById('file').files; 如果(files.length>0){ getBase64(文件[0]); } }); 函数getBase64(文件){ var reader=new FileReader(); reader.readAsDataURL(文件); reader.onload=函数(){ Xrm.Page.getAttribute(“base64string”).setValue(reader.result); }; reader.onerror=函数(错误){}; }
Xrm.Page.getAttribute(“base64string”)
中,您确定
base64string
是字段名吗?如果是自定义字段,则应具有前缀,如
abc\u base64string

此外,HTML web资源不能直接访问
Xrm.Page

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

我相信您的代码应该更像这样:

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

您将此代码放置在何处?@JamesWood此代码作为网络资源放置在活动表单上