【问题标题】:Facing extra row in the data grid?面对数据网格中的额外行?
【发布时间】:2011-08-12 11:37:04
【问题描述】:

我正在生成一个带有数组集合的数据网格。当生成数据网格时,会在网格末尾创建一些额外的行。我如何删除多余的 Row 或阻止它们生成。

我的生成网格的代码

private function createGrid(dataPrvdr:ArrayCollection, columnsValue:Array /*of Objects*/ = null):void
        {
            if (dataPrvdr && dataPrvdr.length)
            {
                includeInLayout = true;
                var grid:DataGrid = new DataGrid();

                if (columnsValue)
                {
                    var cols:Array = grid.columns;
                    for (var i:int = 0; i < columnsValue.length; i++)
                    {
                        for (var prop:String in columnsValue[i])
                        {
                            //addDataGridColumn(prop, columnsValue[i][prop], grid);
                            cols.push(DataGridColumn(columnsValue[i][prop]));
                        }
                    }

                    grid.columns = cols;
                }

                grid.dataProvider = dataPrvdr;
                grid.percentWidth = 99;
                grid.styleName = "dataGridReport";  
                grid.setStyle("headerBackgroundSkin",DataGridHeaderBlueSkin); 

                grid.sortableColumns = false;
                grid.editable = false;
                grid.variableRowHeight = true;
                grid.resizableColumns = false;

                grid.rowCount = grid.dataProvider.length;
                grid.headerHeight = 20;
                grid.rowHeight = 16;
                grid.verticalScrollPolicy = ScrollPolicy.OFF;
                addElement(grid);

                if (!grids)
                    grids = [];

                grids.push(grid);
                grid.addEventListener("multiLineLabelItemRendererHeightChanged", rendererHeightChanged, false, 0, true);
                grid.addEventListener(FlexEvent.CREATION_COMPLETE, function (event:FlexEvent):void
                {
                    grid.invalidateSize();
                }, false, 0, true);
            }
        }

谢谢

【问题讨论】:

    标签: flash apache-flex actionscript-3 action


    【解决方案1】:

    当您设置数据网格的height 属性时,它会覆盖rowCount

    您可以在代码中将height 设置为:

    grid.height = grid.dataProvider.length * grid.rowHeight + grid.headerHeight;
    

    干杯,

    【讨论】:

    • 您好,谢谢,我用 Rowheight 行检查了这个解决方案,但没有它,但成功 - 错误仍然相同。任何其他方法来解决它。谢谢
    • 在你的例子中,你可以设置如下:grid.height = dataPrvdr.length * 16 + 20;
    • 是的,实际上我对 rowHeight 属性感到困惑,所以我专门设置它,并动态计算行数。感谢您的解决方案让我的生活变得轻松。
    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 2023-03-15
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2016-07-21
    • 2016-02-14
    相关资源
    最近更新 更多