代码改变世界

DeveXpress之XtraGrid一些知识

  观海看云  阅读(605)  评论(0编辑  收藏  举报

DeveXpress

1.XtraGrid

  1.1字段设定

  (1)Run Designer

  (2)选择对应的GridView

  (3)点击 Colums

  (4)点击Add添加列,需设置Name(字段名),FiledName(绑定名),Caption(显示名)



  1.2添加下级GridView

  (1)点击Level添加新的GridView

  (2)选择父GridView的MasterRowGetChildList事件

  (3)在事件中敲入(例子)

  var view = (GridView)sender;

  //从主Grid取出当前点击行的某个字段的值

  long Code = (long)view.GetFousedRowCellValue("ForderCode")

  //从数据库中取出相应的数据赋给嵌套在里面的Grid

  e.ChildList =
BVTproductBelongAndProduct.Select(tp=>tp.ForderCode==Code).ToList();

  (4)如果绑定是视图或者其他,需指定其对应的两个MasterRowGetRelation事件和MasterRowGetRelation事件

  MasterRowGetRelation事件

  实例:

//指定关系名 

 private void GridView_Franchise_MasterRowGetRelation(object
      sender.MaterRowGetRelationNameEventArgs e)

{

e.RelationName="TOrder"

}

//指定数量

private void GridView_Franchise_MasterRowGetRelation(object       sender.MaterRowGetRelationCountEventArgs e)

{

e.RelationCount=1

}

1.3获取子GridView的行的数据

(1)触发行点击MouseDown事件,获取Gridview dv= (GridView)sender

(2)获取对应的实体信息

int [] i = dv.GetSelectedRows();

VTAgencyAndContract vtaac = (VTAgencyAndContract) dv.GetRow(i[0]);

FContractId = vtacc.FContractId

1.4常用语句

(1)获取某一列的值

WorkmanshipGridView
.GetRowCellValue(this.WorkManshipGridView.FousedRowHandle,列名)

或者(int)WorkManshipGridView.GetFouseRowCellValue(列名)

(2)获取对象

WorkManShipGridView.GetRow(WorkManShipGridView.FocusedRowHandle) as 对象类型

或者WorkManShipGridView.GetFocusedRow() as 对象类型

(3) 是否允许编辑 this.TproductGridView.OptionBehavior.Editable = false/true

(4) 刷新Grid WorkmanshipGridControl.RefreshDataSource();

(5)为某一列赋值
TproductProcessGridView.SetRowCellValue(e.RowHandle,WMinCycle,e.Value)

 


复制代码
private void gridDeliveryDetail_KeyDown(object sender, KeyEventArgs e)
        {
            
if (e.KeyCode == Keys.Delete)
            {
                
if (MessageBox.Show("删除行?""确认", MessageBoxButtons.YesNo) != DialogResult.Yes)
                    
return;
                
int i = viewDeliveryDetail.FocusedRowHandle;
                
if (i >= 0)
                {
                    viewDeliveryDetail.DeleteRow(i);
                }
            }
        }
复制代码
 
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示