你的位置:首页 > 软件开发 > ASP.net > C#实现WinForm DataGridView控件支持叠加数据绑定

C#实现WinForm DataGridView控件支持叠加数据绑定

发布时间:2015-04-22 14:01:50
我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支持,而不是实现,是因为他既可以是实现了IListSource的类型,也可以是实现 ...

我们都知道WinForm Dataget='_blank'>GridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支持,而不是实现,是因为他既可以是实现了IListSource的类型,也可以是实现了IList的类型,例如:List类型,DataTable类型等,这里就不一一列举了,今天我主要实现的功能如标题所描述的:实现WinForm DataGridView控件支持叠加数据绑定,或者说是附加数据功能,什么意思呢?说白了就是支持数据的多次绑定,标准的绑定方法只支持单一绑定,即每次绑定均会清除原来的数据,而叠加数据绑定则可实现每次绑定均以附加的形式(原数据保留)添加到DataGridView控件中,这样就实现了分页加载,但可完整显示已加载的所有数据,这种应用场景在C/S端很常见,B/S端上也有(例如QQ空间动态下面的加载更多按钮)

以下是实现附加数据两种方式:

第一种方式,采用反射获取属性值并循环添加数据行

    private static void AppendDataToGrid(DataGridView grid, IList<object> source)    {      int rowCount = grid.Rows.Count;      List<DataGridViewRow> rows = new List<DataGridViewRow>();      Type t = source.GetEnumerator().Current.GetType();      int rowIndex = grid.Rows.Add();      var girdCells = grid.Rows[rowIndex].Cells;      //Common.ShowProcessing("正在加载数据,请稍候...", Common.MainForm, (o) =>      //{        foreach (object item in source)        {          var row = new DataGridViewRow();          foreach (DataGridViewCell cell in girdCells)          {            var p = t.GetProperty(cell.OwningColumn.DataPropertyName);            object pValue = p.GetValue(item, null);            var newCell = (DataGridViewCell)cell.Clone();            newCell.Value = pValue;            row.Cells.Add(newCell);          }          rows.Add(row);        }      //});      grid.Rows.RemoveAt(rowIndex);      grid.Rows.AddRange(rows.ToArray());    }

原标题:C#实现WinForm DataGridView控件支持叠加数据绑定

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录