I'm using Sharepoint 2013 CSR to disable columns in quick edit. I want to disable complete row or cell based on column value.
For example. If I have two requests whose status are pending there is one column request status which is a choice-(pending/Approve) type where user can change that pending column to approve. Once it is approved the request status column should be disabled or entire row should be disabled. Can it be possible ?
I'm using below script but it disables complete column.
<script type="text/javascript">
var updateViewerFields=["Request Status","Request Id"];
(function updateView() {
var overrideContext = {};
overrideContext.Templates = overrideContext.Templates || {};
overrideContext.Templates.OnPreRender = function(ctx) {
for(j=0; j<ctx.ListSchema.Field.length; j++)
{
var f = ctx.ListSchema.Field[j];
for(i=0;i<updateViewerFields.length;i++){
if(f.DisplayName == updateViewerFields[i]){
f.AllowGridEditing=false;
}
}
}
}
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideContext);
})();
</script>
I'm trying below script but no luck
overrideContext.Templates.OnPostRender = function(ctx) {
var rows = ctx.ListData.Row;
//console.log(rows);
for (var i=0;i<rows.length;i++)
{
var isApproved = rows[i]["Request_x0020_Status"] == "Approved";
if (isApproved)
{
//alert("Please confirm");
var rowElementId = GenerateIIDForListItem(ctx, rows[i]);
var tr = document.getElementById(rowElementId);
//tr.style.backgroundColor = "#ada";
console.log(tr);
}
}