我在自定义实体表单上有一个子网格,我在其中显示了案例实体的相关记录。我想限制用户只选择一条记录。我如何使用crm 2011中的javascript实现这一目标
答案 0 :(得分:1)
有时候应该支持不支持!!!特别是当需要走完整个距离来实现这种简单的UI请求时。 Subgird拥有所有这些可以使用的好方法,由于某些原因,Microsoft坚持不将其暴露为SDK。那太傻了。 我也会寻找一个JavaScript解决方案。这是一些可以帮助您完成任务的伪代码。 (未经测试但应该让你走上正轨)
代码在内部crm网格控件上创建一个简单的包装器并使用它的方法。
function xGrid(sId) {
var o = this;
o.Dom = document.getElementById(sId);
if (!o.Dom)
return alret("this subgrid: " + sId + " is not on the form!");
o.Grid = o.Dom.contorl;
o.GetSelectedIds = function () {
return o.Grid && o.Grid.get_selectedIds();
}
o.AddOnSelectionChange = function (fCallback) {
o.Grid && o.Grid.add_onSelectionChange(fCallback);
return o;
}
}
您可以在页面加载时创建xGrid,即
function OnCrmPageLoad() {
window.MyGrid = new xGrid("SubGrid_Test");
MyGrid.AddOnSelectionChange(SubGridTestChanged);
}
然后调用下面的函数,然后选择更改
function SubGridTestChanged() {
if (MyGrid.GetSelectedIds().length > 1)
alert("You’re only allowed to pick 1 record at a time");
}
答案 1 :(得分:0)
实现此检查的一种受支持的方法是在关联/取消关联消息上创建同步插件,该插件将检查是否关联了多个记录以及throw和exception,以便向用户显示警告以仅选择一个记录。