
Dear Experts,
am Facing Problem with Kendo Grid,
I have placed 4 Custom Buttons in Kendo HTML Grid like
1.submit
2.approve
3.reject
4.cancel
and 2 are Default Buttons
1.edit
2.update
Here am Hiding and Showing the
1.submit
2.approve
3.reject
4.cancel
Buttons Based on the Status I have Written Code for this Like Below
function HideEditButton()
{
var TravelPlanid = window.parent.Xrm.Page.data.entity.getId();
TravelPlanid = TravelPlanid.replace(/\{|\}/gi, '');
var CreatedBy = null;
if ( window.parent.Xrm.Page.getAttribute("createdby")!=null && window.parent.Xrm.Page.getAttribute("createdby")!=undefined)
{
CreatedBy = window.parent.Xrm.Page.getAttribute("createdby").getValue()[0].id;
CreatedBy = CreatedBy.replace(/\{|\}/gi, '');
}
var userId = Xrm.Page.context.getUserId();
var userId = userId.replace(/\{|\}/gi, '');
var grid = jQuery("#subdiv1").data("kendoGrid");
var gridData = grid.dataSource.view();
for (var i = 0; i < gridData.length; i++) {
var currentUid = gridData[i].uid;
console.log(i + ' ' + gridData[i].RecordType);
if (gridData[i].pcl_travelplanactivitystatus.value == 798330003)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(submitButton);
console.log(editButton);
console.log(deleteButton);
deleteButton.hide();
submitButton.hide();
editButton.hide();
}
if (gridData[i].pcl_travelplanactivitystatus.value == 798330003 && CreatedBy == userId)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
console.log(approveButton);
console.log(rejectButton);
approveButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330000)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(approveButton);
console.log(deleteButton);
console.log(editButton);
console.log(rejectButton);
approveButton.hide();
editButton.hide();
deleteButton.hide();
submitButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330005 && CreatedBy != userId)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(approveButton);
console.log(deleteButton);
console.log(editButton);
console.log(rejectButton);
approveButton.hide();
editButton.hide();
deleteButton.hide();
submitButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330005 && CreatedBy == userId)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
console.log(approveButton);
console.log(rejectButton);
approveButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330004)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(approveButton);
console.log(deleteButton);
console.log(editButton);
console.log(rejectButton);
approveButton.hide();
editButton.hide();
deleteButton.hide();
submitButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 1)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(submitButton);
console.log(editButton);
console.log(deleteButton);
deleteButton.hide();
submitButton.hide();
editButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330002 && CreatedBy == userId)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var editButton = jQuery(currenRow).find(".k-grid-edit");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
var deleteButton = jQuery(currenRow).find(".k-grid-delete");
console.log(approveButton);
console.log(deleteButton);
console.log(editButton);
console.log(rejectButton);
approveButton.hide();
editButton.hide();
deleteButton.hide();
submitButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330002 && CreatedBy != userId)
{
debugger;
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var approveButton = jQuery(currenRow).find(".k-grid-Approve");
var submitButton = jQuery(currenRow).find(".k-grid-Submit");
var rejectButton = jQuery(currenRow).find(".k-grid-Reject");
var deleteButton = jQuery(currenRow).find(".k-grid-Delete");
console.log(approveButton);
console.log(submitButton);
console.log(rejectButton);
console.log(deleteButton);
deleteButton.hide();
approveButton.hide();
submitButton.hide();
rejectButton.hide();
}
else if (gridData[i].pcl_travelplanactivitystatus.value == 798330002 && CreatedBy != userId && gridData[i].pcl_managerremarks.value != null)
{
console.log("Model: " + i + ' ' + gridData[i].RecordType + " UID:" + currentUid);
var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
var editButton = jQuery(currenRow).find(".k-grid-edit");
console.log(editButton);
editButton.hide();
}
}
}
and am calling HideEditButton() is on Edit Function like below
edit: function (e) {
HideEditButton();
var kendo = jQuery('input[id=activitystatus]').data("kendoDropDownList");
kendo.select(1);
kendo.readonly(!kendo.element.prop("readonly"));
}
Here my Problem is if i clicked on Edit button i can able to Edit the Row Record but Here if i did not changed Record Values and I clicked on Update button then all buttons are showing like below
*This post is locked for comments
I have the same question (0)I Found the Answer for this like bellow
On Update Function I called this
jQuery("#subdiv1").data('kendoGrid').datasource[0].dirty = true;
on Edit i Called this
e.model.dirty = true;