首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加ui.grid中列的宽度

增加ui.grid中列的宽度
EN

Stack Overflow用户
提问于 2015-03-27 10:51:53
回答 2查看 20.9K关注 0票数 7

我在网格中插入了一些虚拟对象,网格中的数据显示发现了一些问题。这是我的代码:

html:

代码语言:javascript
复制
<div class="gridStyle" ui-grid="gridOptions"></div>

联署材料:

代码语言:javascript
复制
$scope.myData = [{
    JobId: '196',
    siteType: 'abc',
    Title: 'Happy womans day',
    Message: 'hello',
    devicetype: 'A',
    jobDuration: '819',
    totalMsgs: '2016',
    msgsDelivered: 'Msg not found In the whole Body',
    msgsFailed: '789',
    jobCreatedDate: '11-03-2015',
    jobCreatedBy: 'abc@abc.com'
}];
$scope.gridOptions = {
    data: 'myData'
};

css:

代码语言:javascript
复制
.ui-grid-header-cell .ui-grid-cell-contents {
    height: 48px;
    white-space: normal;
    -ms-text-overflow: clip;
    -o-text-overflow: clip;
    text-overflow: clip;
    overflow: visible;
}

数据显示在网格中,但只能显示到一定的宽度。无法包装长文,如: Msg未在全身找到,显示为Msg非名词.

  1. 如何增加每一列的宽度?
  2. 我无法将长的文本行包装成2-3行,整个文本只显示在一行中。
  3. 以上css只适用于标头。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-28 04:20:36

好吧,有几件事。

首先,要设置需要使用列定义的列宽度,则可以在每个列上设置以像素或百分比为单位的宽度。请参考editable作为一个具有列宽度的示例。

其次,还有添加工具提示的功能,这是显示不适合可用空间的较长单元格的一种方法。参考tooltips

第三,您可以使行更高,从而在其中有包装内容的空间。请注意,所有行都必须是相同的高度,所以您不能只使需要它的行更高。

代码语言:javascript
复制
gridOptions.rowHeight = 50;

您还需要在div上设置空格属性,以便将其包装起来,这可以通过在cellTemplate中设置类,然后向css添加样式来完成。

以柱塞为例:http://plnkr.co/edit/kyhRm08ZtIKYspDqgyRa?p=preview

票数 12
EN

Stack Overflow用户

发布于 2015-08-25 07:03:29

设置javascript的依赖项:

代码语言:javascript
复制
angular.module('app', [
    'ngTouch', 
    'ui.grid',
    'ui.grid.autoResize',
    'ui.grid.resizeColumns'
])

对于ui-grid 3.0,我使用以下指令:

代码语言:javascript
复制
 .directive('setOuterHeight',['$timeout', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element) {
          $timeout(function(){
            // Get the Parent Divider.
            var parentContainer = element.parent()[0];
            console.log(parentContainer.offsetHeight);

            // Padding of ui-grid-cell-contents is 5px.
            // TODO: Better way to get padding height?
            var topBottomPadding = 10;
            //Get the wrapped contents rowHeight.
            var rowHeight = topBottomPadding + parentContainer.offsetHeight;
            var gridRowHeight = scope.grid.options.rowHeight;
            // Get current rowHeight
            if (!gridRowHeight ||
                    (gridRowHeight && gridRowHeight < rowHeight)) {
                // This will OVERRIDE the existing rowHeight.
                scope.grid.options.rowHeight = rowHeight;
            }
          },0);
        }
    };
}])

在主计长之下:

代码语言:javascript
复制
.controller('MainCtrl',
    ['$scope', '$q', '$timeout', 'uiGridConstants',
        function ($scope, $q, $timeout, uiGridConstants) {
            $scope.gridOptions = {
                enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
                enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
                columnDefs: [
                    {name: 'firstName', width: '*'},
                    {name: 'lastName', width: '*'},
                    {
                        name: 'company', width: '*',
                        cellTooltip: function (row) {
                            return row.entity.company;
                        },
                        cellTemplate: '<div class="ui-grid-cell-contents wrap" title="TOOLTIP"><div><span class="label" set-row-height>{{row.entity.company}} </span></div><div>'
                    },
                    {name: 'employed', width: '*'}
                ],
                enableColumnResize: true,
                rowHeight: 10,
            };
        }]);

*注意cellTemplate的设置行高度指令。

对于CSS,您必须将空白设置为正常的:

代码语言:javascript
复制
.wrap {
    white-space: normal;
}
.wrap .label {
     display: inline-block;
}

最后,更改网格高度的HTML:

代码语言:javascript
复制
<div id="grid1" ui-grid="gridOptions" class="grid" ng-style="{height: (gridOptions.data.length*gridOptions.rowHeight)+32+'px'}" ui-grid-resize-columns  ui-grid-auto-resize></div>

柱塞示例如下:http://plnkr.co/edit/OwgEfru0QyFaU1XJFezv?p=preview

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29298968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档