Cách lấy thông tin của subgrid trên form

Sử dụng Xrm.Page.ui.controls để lấy tất cả controls trên form, sau đó lấy những control có control type là ‘subgrid’.

Lấy tất cả thông tin của subgrid:

Xrm.Page.ui.controls.get(
function(ctrl,i){
 if(ctrl.getControlType() == "subgrid")
  console.log(ctrl);
});

Lấy một vài thông tin chi tiết của subgrid:

Xrm.Page.ui.controls.get(
function(ctrl,i){
 if(ctrl.getControlType() == "subgrid")
 {
	console.log('subgrid ' + i);
	console.log('    name: ' + ctrl.getName());
	console.log('    label: ' + ctrl.getLabel());
	console.log('    entity name: ' + ctrl.getEntityName());
	console.log('    relationship: ' + ctrl.getRelationship());
	console.log('    relationship name: ' + ctrl.getRelationshipName());	
	console.log('    relationship type: ' + ctrl.getRelationshipType());
	console.log('    parent: ' + ctrl.getParent());
 } 
});

Ghi chú: hàm getRelationship() trả về một object chứa N properties như attributeName, name, …. nên có thể dùng script bên dưới để lấy thông tin:

Xrm.Page.ui.controls.get(
function(ctrl,i){
 if(ctrl.getControlType() == "subgrid")
 {
	console.log('subgrid ' + i);
	console.log('    name: ' + ctrl.getName());
	console.log('    label: ' + ctrl.getLabel());
	console.log('    entity name: ' + ctrl.getEntityName());
	console.log('    entity name: ' + ctrl.getEntityName());
	
	var relationship = ctrl.getRelationship();
	console.log('    relationship: ' + relationship);
	if (typeof(relationship) == 'object')
	{
		console.log('        name: ' + relationship.name);
		console.log('        attributeName: ' + relationship.attributeName);
		console.log('        navigationPropertyName: ' + relationship.navigationPropertyName);
		console.log('        relationshipType: ' + relationship.relationshipType);
		console.log('        roleType: ' + relationship.roleType);
	}
	else
	{
		console.log('        NONE');		
	}
	
	console.log('    relationship name: ' + ctrl.getRelationshipName());	
	console.log('    relationship type: ' + ctrl.getRelationshipType());
	console.log('    parent: ' + ctrl.getParent());
 } 
});

Giải thích:

  • relationshipType: là một number
0: OneToMany
1: ManyToMany
  • roleType: cũng là number
1: Referencing
2: AssociationEntity

Bạn có thể kiểm chứng nhanh bằng cách mở development tool và debug trên browser để xem thông tin.

Góc Kinh Nghiệp chúc các bạn thành công :) !


Leave a Reply

Your email address will not be published. Required fields are marked *