我想用文档的基数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>
答案 0 :(得分:2)
在Xrm.Page.getAttribute("base64string")
中,您确定base64string
是字段名称吗?如果它是一个自定义字段,则应使用诸如abc_base64string
之类的前缀。
此外,HTML Web资源无法直接访问Xrm.Page
。
Reference other web resources from an HTML web resource。
添加到表单的HTML Web资源不能使用定义的全局对象 由JavaScript库中的表格加载。 HTML Web资源可能 与表单中的 Xrm.Page 或 Xrm.Utility 对象进行交互 使用 parent.Xrm.Page 或 parent.Xrm.Utility ,但使用全局对象 表单脚本定义的内容将无法使用父级进行访问。
我相信您的代码应该更像这样:
reader.onload = function () {
parent.Xrm.Page.getAttribute("abc_base64string").setValue(reader.result);
};