javascript - 如何展开 - 在 ui 网格分组中折叠行单击?

标签 javascript angularjs user-interface angular-ui-grid ui-grid

我试图在行点击时展开和折叠分组,因为它应该与 ui 网格中的 + 和 - 图标一起使用。

我正在尝试从行模板调用 treeButtonClick(row, $event) ,如下所示。但功能不触发。

rowTemplate: '<div ng-click="treeButtonClick(row, $event)" ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid" class="ui-grid-cell" ng-class="col.colIndex()" ui-grid-cell></div>',

此外,在 ui 网格中的分组中,这应该与 + 和 - 图标一样工作。

请建议我如何让它工作,在此先感谢

最佳答案

解决方法是:
1. 为您的表格创建自定义模板:

<div ng-mousedown="grid.appScope.onMouseDown(row, $event)"
     ng-click="grid.appScope.onDblClickRow(row.entity)" grid="grid" class="ui-grid-row">
    <div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name"
         class="ui-grid-cell" ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader, custom: true }"
         ui-grid-cell></div>
</div>

指定模板用作 rowTemplate 和您自己的应用范围提供程序:

vm.gridOptions = {
            appScopeProvider: myAppScopeProvider,
            rowTemplate: 'app/pages/components/building/buildReqViewAll/rowTemplate.html',
            onRegisterApi: function (gridApi) {
                vm.gridApi = gridApi;
            }
        };

打开你的行的函数:

var myAppScopeProvider = {
            onClickRow: function (row, event) {
                var rowIndex = row.grid.renderContainers.body.visibleRowCache.indexOf(row);

                if (!angular.isUndefined(row.treeLevel)) {
                    vm.gridApi.treeBase.toggleRowTreeState(vm.gridApi.grid.renderContainers.body.visibleRowCache[rowNumber]);
                }
            }
        };

关于javascript - 如何展开 - 在 ui 网格分组中折叠行单击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484130/

相关文章:

qt - Qt Fresh Gui应用程序在启动时崩溃,并在QtCore4.dll上出错

java - 用于停止和反转对象的按钮监听器 (GUI)

javascript - 绑定(bind)智能表值并编辑行

javascript - HTML5 Canvas 缩放/缩放更大 2D 世界的 View 框?

angularjs - 在 ngView 中动态添加新的表单字段 - Angularjs

angularjs - Angular JS 范围泄漏与 element.empty()

php - 将我的php登录屏幕连接到我的SQL DB

javascript - 为什么从 focus() 改为触发 ('focus' )?

如果文本字段为空,则在提交时发出 Javascript 警报

angularjs - SCRIPT5022 : Argument 'module' is not a function, 未定义 angular.js,第 975 行字符 5