我仍然是JavaScript的新手,所以我可以使用这个要求的一些帮助。
我在表单顶部设置了两个HTML webresource按钮(new_dayPagePreviousButton和new_dayPageNextButton),它们之间是一个日历字段(new_daypagedate)。我们在页面上有子网格,配置为根据日历字段中选择的日期返回结果。
要求是每当用户单击“上一天”或“下一天”按钮时,在日历字段中添加或减去一天。
我假设字段new_daypagedate
具有动态CRM的数据类型日期和时间,new_dayPagePreviousButton
和new_dayPageNextButton
只是HTML按钮,并且当用户点击任何按钮时,您希望在CRM的日历字段中进行更改。
正如您所提到的,您已经创建了Web资源,因此我假设您已添加了两个按钮,并且在单击按钮事件时,它应该对new_daypagedate
字段做出反应。
在这里,我为您创建了一个网络资源,请尝试在您的实例中应用以下javascript,
function AddDays(arg) {
var d=window.parent.Xrm.Page.data.entity.attributes.get("new_daypagedate").getValue();
d.setDate(d.getDate() + arg);
window.parent.Xrm.Page.data.entity.attributes.get("new_daypagedate").setValue(d);
}
可选的HTML,
<button type="button" id="new_dayPagePreviousButton" onclick="AddDays(-1)">Previous Day</button><br/>
<button type="button" id="new_dayPageNextButton" onclick="AddDays(1)">Next Day</button>
请注意,您需要使用相应按钮的onClick
事件调用javascript函数。
侧面注意:当您使用Dynamics CRM时,您需要使用Xrm.Page属性访问您的CRM字段,您不能仅使用该字段的ID直接访问任何字段或HTML标记,您可以在上面的Javascript中看到。
经过一些额外的研究,我修改了一个按钮HTML,以包含你在第一篇文章Sagar中给出的JScript。现在的内容如下:
<html><head>
<script type="text/jscript">
function AddDays(arg) {
var
d=window.parent.Xrm.Page.data.entity.attributes.get("new_daypagedate").getValue();
d.setDate(d.getDate() + arg);
window.parent.Xrm.Page.data.entity.attributes.get("new_daypagedate").setValue(d);
}
</script>
<meta><style type="text/css">P { margin: 0; }</style><meta><style type="text/css">P {
margin: 0; }</style></head><body onfocusout="parent.setEmailRange();"
style="overflow-wrap: break-word;">
<button type="button" id="new_dayPageNextButton" onclick="AddDays(1)">Next
Day</button>
</body></html>
发布后,该按钮成功更改日期!但是,一旦更改日期,下面的子网格不会刷新以反映新日期。这是一个单独的问题,所以我将为它发布一个单独的问题。
萨格尔,谢谢你带我走过这条路。你的信息非常丰富。