# bi.grid_view

## 网格视图集合,高性能组件,可以处理网格状的大集合,实现需要知道每一个视图的高度信息,基类[BI.Widget](/core/widget.md)

{% method %}
[source](https://jsfiddle.net/fineui/fkntzLq5/)

{% common %}
```javascript

BI.createWidget({
    type: "bi.grid_view",
    width: 400,
    height: 300,
    estimatedRowSize: 30,
    estimatedColumnSize: 100,
    items: [],
    scrollTop: 100,
    rowHeightGetter: function () {
        return 30;
    },
    columnWidthGetter: function () {
        return 100;
    }
});



```

{% endmethod %}

## API
##### 基础属性
| 参数    | 说明           | 类型  | 可选值 | 默认值
| :------ |:-------------  | :-----| :----|:----
| items | 子组件数组 | array | —  | [ ] |
| overflowX | 是否显示横向滚动条| boolean | true,false | true |
| overflowY | 是否显示纵向滚动条 | boolean | true,false | true |
| overscanColumnCount| 超出可视范围区域预加载多少列 | number|— | 0 |
| overscanRowCount| 超出可视范围区域预加载多少行 | number | — | 0 |
| width | 行宽,必设 |number| — | —  |
| height | 列宽,必设 | number | —| — |
| rowHeightGetter| 每格行宽 |number,function | —| function  |
| columnWidthGetter| 每格列宽 | number,function |— | function |
| estimatedColumnSize| 预估行宽,columnWidthGetter为function时必设 |number,function |— | function  |
| estimatedRowSize | 预估列宽,rowHeightGetter为function时必设 | number,function | —| function |
| scrollLeft | 滚动条相对于左边的偏移 | number | — | 0 |
| scrollTop |  滚动条相对于顶部的偏移 | number |  —|0 |




## 对外方法
| 名称     | 说明                           |  回调参数     
| :------ |:-------------                  | :-----   
| setScrollLeft | 设置滚动条相对于左边的偏移 | scrollLeft|
| setScrollTop | 设置滚动条相对于顶部的偏移 | scrollTop |
| setOverflowX | 设置是否显示横向滚动条 | b |
| setOverflowY | 设置是否显示横向滚动条 | b|
| getScrollLeft | 获取滚动条相对于左边的偏移 | —|
| getScrollTop | 获取滚动条相对于顶部的偏移 | — |
| getMaxScrollLeft | 获取滚动条相对于左边的最大偏移 | — |
| getMaxScrollTop | 获取滚动条相对于顶部的最大偏移 |—|
| setEstimatedColumnSize | 设置列宽 |width|
| setEstimatedRowSize | 设置行宽 | height |
| restore | 还原列表设置 | — |
| populate | 刷新列表 | items |

## 事件
| 事件     | 说明                           |  回调参数
| :------ |:------------- |:----------|
|BI.GridView.EVENT_SCROLL|    滚动时触发的事件 | {scrollLeft: scrollLeft, scrollTop: scrollTop} |


---