public void OnGridRowControlsBind(GridRowControlBindEventArgs e) { }
/// <summary> /// Disabled organizations cannot be edited and deleted. /// </summary> /// <param name="e"></param> public override void OnGridRowControlsBind(GridRowControlBindEventArgs e) { OrganizationStatus status = (OrganizationStatus)DataBinder.Eval(e.DataItem, "Status"); e.ShowDeleteButton = status != OrganizationStatus.Disabled; }
/// <summary> /// Not approved concrete datas cannot be edited and deleted. /// </summary> /// <param name="e"></param> public override void OnGridRowControlsBind(GridRowControlBindEventArgs e) { DeleteStatus deleteStatus = (DeleteStatus)DataBinder.Eval(e.DataItem, "DeleteStatus"); e.ShowDeleteButton = deleteStatus != DeleteStatus.Deleted; }
/// <summary> /// Cannot modify and delete the inherited fields from parents. /// </summary> /// <param name="e"></param> public override void OnGridRowControlsBind(GridRowControlBindEventArgs e) { bool inherited = (bool)DataBinder.Eval(e.DataItem, "Inherited"); e.ShowDeleteButton = !inherited; e.ShowEditButton = !inherited; }
/// <summary> /// Convert QueryResults by generate decorate serializable class with transformed values. /// </summary> /// <param name="dynamicPageService"></param> /// <param name="results"></param> /// <returns></returns> private static IEnumerable ConvertQueryResults(IDynamicPage dynamicPageService, IEnumerable results) { IEnumerable<object> originalObjects = results.Cast<object>(); if (originalObjects.Count() == 0) return results; IEnumerable<PropertyDefinition> propertyDecorateConfigs = CreatePropertyDecorateConfigs(dynamicPageService); IEnumerable<object> convertResults = null; try { convertResults = ClassDecorator.CreateDecorateObjects(originalObjects, propertyDecorateConfigs.ToArray()).Cast<object>(); } catch (CompileException exp) { string loggingMessage = string.Format(CultureInfo.InvariantCulture, "There has errors to compile a dynamic class from dynamic page configuration to render UI grid of the dynamic page with object id equals to \"{0}\".", QueryStringUtility.ObjectId); Logger.Instance(typeof(DynamicPageDataServiceHandler)).Error(loggingMessage, exp); throw; } ObjectWrapper convertResultObjectWrapper = new ObjectWrapper(convertResults.First().GetType()); for (int i = 0; i < originalObjects.Count(); i++) { object originalObject = originalObjects.ElementAt(i); GridRowControlBindEventArgs arg = new GridRowControlBindEventArgs(originalObject); dynamicPageService.OnGridRowControlsBind(arg); convertResultObjectWrapper.WrappedInstance = convertResults.ElementAt(i); // set visibility of checkbox bool showCheckBoxColumn = (bool)convertResultObjectWrapper.GetPropertyValue(DynamicPageDataServiceHandler.ShowCheckBoxColumnPropertyName); convertResultObjectWrapper.SetPropertyValue(DynamicPageDataServiceHandler.ShowCheckBoxColumnPropertyName, showCheckBoxColumn && arg.ShowCheckBoxColumn); // set visibility of edit button string permissionValue = string.Format(CultureInfo.InvariantCulture, "{0}.Update", dynamicPageService.Configuration.PermissionValue); bool hasUpdatePermission = permissionBridge.HasPermission(permissionValue); bool showEditButtonColumn = (bool)convertResultObjectWrapper.GetPropertyValue(DynamicPageDataServiceHandler.ShowEditButtonColumnPropertyName); convertResultObjectWrapper.SetPropertyValue(DynamicPageDataServiceHandler.ShowEditButtonColumnPropertyName, showEditButtonColumn && arg.ShowEditButton && hasUpdatePermission); // set visibility of view button bool showViewButtonColumn = (bool)convertResultObjectWrapper.GetPropertyValue(DynamicPageDataServiceHandler.ShowViewButtonColumnPropertyName); convertResultObjectWrapper.SetPropertyValue(DynamicPageDataServiceHandler.ShowViewButtonColumnPropertyName, showViewButtonColumn && arg.ShowViewButton); // set visibility of delete button permissionValue = string.Format(CultureInfo.InvariantCulture, "{0}.Delete", dynamicPageService.Configuration.PermissionValue); bool hasDeletePermission = permissionBridge.HasPermission(permissionValue); bool showDeleteButtonColumn = (bool)convertResultObjectWrapper.GetPropertyValue(DynamicPageDataServiceHandler.ShowDeleteButtonColumnPropertyName); convertResultObjectWrapper.SetPropertyValue(DynamicPageDataServiceHandler.ShowDeleteButtonColumnPropertyName, showDeleteButtonColumn && arg.ShowDeleteButton && hasDeletePermission); } return convertResults; }
/// <summary> /// Not approved users cannot be edited and deleted. /// </summary> /// <param name="e"></param> public override void OnGridRowControlsBind(GridRowControlBindEventArgs e) { bool isApproved = (bool)DataBinder.Eval(e.DataItem, "IsApproved"); e.ShowDeleteButton = isApproved; }