使用 Xrm.Navigation.openWebResource() 后如何从 Web 资源中取回表单数据
How to get back form data from Web resource after using Xrm.Navigation.openWebResource()
我有一个 Web 资源,单击按钮即可打开,如下所示:
var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);
我在 html 网络资源中有一个小输入字段(您可以猜到,它是一个日期时间字段)。我的问题是,表单关闭后如何获取字段数据?我从函数
中调用了上面的代码
function Cancel() {
var contract_id = Xrm.Page.data.entity.getId();
var contract_guid = contract_id.replace(/[{}]/g, "");
var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);
//need field data to be returned so I can set a field in the form to its value
var datefield = ??
formContext.getAttribute("new_cancellationdate").setValue(datefield);
//Set the stage to send enquiry letter
XrmSvcToolkit.setState({
id: Xrm.Page.data.entity.getId(),
entityName: "new_contract",
stateCode: 1,
statusCode: 100000002, //Cancelled
async: false
});
}
这是 html 网络资源:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>
<title>Set Cancellation Date</title>
<script>
window.onload = function () {
document.getElementById('party-time').onsubmit = function () {
var date = document.getElementById('party-time').value;
webResourceData.windowCallback(date);
// You must return false to prevent the default form behavior
return false;
};
};
function Quit() {
window.close();
}
</script>
</head>
<body>
<fieldset>
<legend>Cancellation Date</legend>
<div>
<label for="party-time">Date/time:</label>
<input type="datetime-local" id="party-time"
name="party-time" value=""
min="" max="" />
<button type="submit" onclick="Quit()">Submit </button>
</div>
</fieldset>
</body>
</html>
试试这个。不要将值从 webresource 返回给父 window,而是从 HTML 本身分配它。
function Quit() {
window.opener.Xrm.Page.getAttribute("new_cancellationdate").setValue(document.getElementById('party-time').value);
window.close();
}
我有一个 Web 资源,单击按钮即可打开,如下所示:
var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);
我在 html 网络资源中有一个小输入字段(您可以猜到,它是一个日期时间字段)。我的问题是,表单关闭后如何获取字段数据?我从函数
中调用了上面的代码function Cancel() {
var contract_id = Xrm.Page.data.entity.getId();
var contract_guid = contract_id.replace(/[{}]/g, "");
var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);
//need field data to be returned so I can set a field in the form to its value
var datefield = ??
formContext.getAttribute("new_cancellationdate").setValue(datefield);
//Set the stage to send enquiry letter
XrmSvcToolkit.setState({
id: Xrm.Page.data.entity.getId(),
entityName: "new_contract",
stateCode: 1,
statusCode: 100000002, //Cancelled
async: false
});
}
这是 html 网络资源:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>
<title>Set Cancellation Date</title>
<script>
window.onload = function () {
document.getElementById('party-time').onsubmit = function () {
var date = document.getElementById('party-time').value;
webResourceData.windowCallback(date);
// You must return false to prevent the default form behavior
return false;
};
};
function Quit() {
window.close();
}
</script>
</head>
<body>
<fieldset>
<legend>Cancellation Date</legend>
<div>
<label for="party-time">Date/time:</label>
<input type="datetime-local" id="party-time"
name="party-time" value=""
min="" max="" />
<button type="submit" onclick="Quit()">Submit </button>
</div>
</fieldset>
</body>
</html>
试试这个。不要将值从 webresource 返回给父 window,而是从 HTML 本身分配它。
function Quit() {
window.opener.Xrm.Page.getAttribute("new_cancellationdate").setValue(document.getElementById('party-time').value);
window.close();
}