zoukankan      html  css  js  c++  java
  • Dev GridControl 选择行及绑定/获取List对象

    GridControl绑定List对象一般是为了获取焦点行时直接获得该行代表的List对象,或者为了实现嵌套表格,对第一中情况,起始不用绑定List,绑定DataTable也可以实现获取对应List对象

    如果直接绑定List<T>对象,列标题就是T的各属性名,一旦转义(如Select(c => new { 查询条件 = c.queryString, 数量 = c.resAirlines.Count }).ToList();),就成了自定义对象,GetFocusedRow无法获取到原T对象

    解决方法:(起始也适用于绑定的DataTable)

    进行转义时,将原对象作为object也进行完整转义,如 var res = FlightBLL.queryPool.Select(c => new { obj=c, 查询条件 = c.queryString, 数量 = c.resAirlines.Count }).ToList(); 这里的obj=c就将完整对象转义成了obj

    这样,即保留了原对象,也可灵活组织显示形式和列标题

    绑定时,即可用List绑定,也可用DataTable绑定,如下面两种绑定方法都ok:

    CmmFrm.BestFitGridViewColumnsWidth(gdcQuery, res, 0, true, false);

    CmmFrm.BestFitGridViewColumnsWidth(gdcQuery, res.ToDataTable(), 0, true, false);

    将obj列隐藏,gdvQuery.Columns[0].Visible = false;

    取出选定行对象时,不能用GetFocusedRow了,而要用GetFocusedRowCellValue,如:

    var row = gdvQuery.GetFocusedRowCellValue(gdvQuery.Columns[0]) as QUERY_CONDITION_CONTRAST;

    取消当前选中行,但是无法取消初始绑定时的选择行

    gdv_refer.FocusedRowHandle = -1;

    //判断当前有无数据选中,若index<0,没有数据选中

    int index= gdv_refer.GetFocusedDataSourceRowIndex() ;

    //返回选中行的数据对象

    DataRow dr= gdv_refer.GetFocusedDataRow();

    //返回选中行数据实体

    REFTAB reftab = gdv_refer.GetFocusedRow() as REFTAB;

    //删除一行数据

    gdv_refer.DeleteRow(gdv_refer.FocusedRowHandle);

    //新增一行

    DataRow dr = this.DataDetailSourceTable.Rows.Add(); //这是新增加了一行
    dr["primary_key"] = ""; 

  • 相关阅读:
    CPU的物理限制
    递归快还是循环(迭代)快?
    VS2010下测试程序性能瓶颈
    Qt编程之实现在QFileDialog上添加自定义的widget
    This application failed to start because it could not find or load the Qt platform plugin "windows"
    网络设备Web登录检测工具device-phamer
    Outlook数据提取工具readpst
    Xamarin无法调试Android项目
    Web应用扫描工具Wapiti
    Xamarin 2017.11.1更新
  • 原文地址:https://www.cnblogs.com/mol1995/p/9255270.html
Copyright © 2011-2022 走看看