子网格 指定列可编辑
打开窗体编辑页面
找到要设置的子网格 ”双击“
设置子网格的一些属性
打开“控件”选项卡 点击 “添加控件”
选择 “可编辑子网格”
添加之后 关掉这个界面
找到刚才添加的 “可编辑网格” 勾选上 Web 电话 平板的选项
点击 可编辑网格 设置需要的功能
上面的操作完成就成功的让子网格变成 可编辑子网格
下面的操作是 设置特定的列不可编辑
打开”事件“选项卡
选择UI事件 OnRecordSelect
添加事件
选择你的 ”子网格特定列不可编辑方法“(方法的代码在下面) 点击确定就完成了
方法代码:
锁列数据
function DisableContractSLAGrid() {
var gridename = "htsla"; //子网格的标签
var field = ["stnc_sla_top_standard", "stnc_sla_low_standard"];//不可编辑的列数组
if (gridename && field && field instanceof Array) {
var rows = Xrm.Page.getControl(gridename).getGrid().getSelectedRows();
if (rows.getLength() > 0) {
var attributes = rows.get(0).data.entity.attributes;
for (var i = 0; i < field.length; i++) {
var contr = attributes.getByName(field[i]);
if (contr) {
contr.controls.get(0).setDisabled(true);
}
}
}
}
}
获取选中行数据(勾选获取上下文)
function changeinfo(PageDate) {
debugger;
var dd = PageDate.getFormContext().data.entity;
dd.attributes.get("new_name").getValue();
}
js代码获取当前页面所勾选的子网格信息
var rows = Xrm.Page.getControl("子网格名称").getGrid().getSelectedRows();
//获取所有行
var rows = Xrm.Page.getControl("子网格名称").getGrid().getRows();
//rows.get(0).getData().getEntity().attributes.get("new_goodsprice").getValue();获取第一行字段为new_goodsprice的数据
rows.forEach(function (row, i) {
var data = row.getData();
var id = data.getEntity().getId();
//弹出EntityId
alert(id);}
)
用的时候直接粘代码就可以 改一下里面的参数 gridename field
然后可编辑网格就完成了(特定的列不可编辑)