saifuddinazhar
7/25/2019 - 6:08 AM

Implement user column preference

ApplyUserColumnPreference(user, "productGrid");

<script>
  var userID = '@ViewBag.UserID';
  var mainGridID = '@ViewBag.MainGridID'; 
  var isCanEditAllUserColumnPreference = @Convert.ToBoolean(ViewBag.IsCanEditAllUserColumnPreference).ToString().ToLower();
  var selfUserColumnPreference = '@ViewBag.SelfUserColumnPreference' == '' ? [] : JSON.parse('@Html.Raw(ViewBag.SelfUserColumnPreference)');
  var allUserColumnPreference = '@ViewBag.AllUserColumnPreference' == '' ? [] : JSON.parse('@Html.Raw(ViewBag.AllUserColumnPreference)');
</script>

<div class="wrapActionButton">
    <!--Add this inside wrapActionButton -->
    @Html.Partial("_MenuUserColumnPreference")

    <div class="btn-group"></div>
</div>

<!--Optional change grid to-->
 <div id="@ViewBag.MainGridID"></div>
function bindGrid() {
  /* Other scripts */
  
  //optional change grid to $(`#${mainGridID}`)
  
  //on column declaration make sure isColumnPreferenceHidden("FieldName")
  [
    { field: "Name", title: gridTitleName, hidden: isColumnPreferenceHidden("Name") },
    { field: "Code", title: gridTitleCode, hidden: isColumnPreferenceHidden("Code") }
  ]
  
  //add this on end of this grid
  renderMenuColumnPreferenceList();
}