【问题标题】:angular ui-grid disable edit for view mode角度 ui-grid 禁用视图模式编辑
【发布时间】:2015-06-08 16:03:00
【问题描述】:

有没有办法禁用/启用网格的单元格编辑。例如,我有一个主从表单屏幕。当用户想要分析记录时,我使用 ng-disabled 禁用表单的所有控件。但我无法阻止编辑网格。我尝试了“cellEditableCondition”选项。但是,我只在加载网格时运行。如果网格有一个像“disableEdit”这样的选项并接受一个范围变量,那就太好了。当我在编辑模式下打开表单时,网格是可编辑的,而在查看模式下,网格将被禁用。

【问题讨论】:

  • 请贴一些代码。
  • 您是否尝试过更改列定义,然后按照here 的说明使用$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN); 通知网格?

标签: angularjs angular-ui-grid


【解决方案1】:

我找到了解决方案。您可以使用网格列的 cellEditableCondition 属性。如果将此功能应用于此属性,则可以动态启用/禁用单元格。这是一个笨蛋:

 $scope.canEdit = function () { return $scope.pageOptions.isView; };

 $scope.pageOptions = { isView : false};

$scope.gridOptions1 = {
enableRowSelection: true,
    enableSelectAll: true,
enableFiltering: true,
columnDefs: [
  { name: 'name', width: '30%',cellEditableCondition: $scope.canEdit },
  { name: 'gender',  width: '20%',cellEditableCondition: $scope.canEdit },
  { name: 'age', width: '20%',cellEditableCondition: $scope.canEdit },
  { name: 'company', width: '25%',cellEditableCondition: $scope.canEdit },
  { name: 'state',  width: '35%',cellEditableCondition: $scope.canEdit },
  { name: 'balance', width: '25%',cellEditableCondition: $scope.canEdit }
],
isRowSelectable:function(row){if(row.entity['age']>30) return true; return false;},
onRegisterApi: function( gridApi ) {
  $scope.gridApi = gridApi;
}
};

http://plnkr.co/edit/md9AOA64Zn67KqhNmhZT?p=preview

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多