社区
VB
帖子详情
xtragrid
bright5
2010-12-30 02:32:27
关于这个xtragrid,有没有vb.net的用法教程,要中文的,附带几个例子更好
...全文
357
3
打赏
收藏
xtragrid
关于这个xtragrid,有没有vb.net的用法教程,要中文的,附带几个例子更好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
水猿兵团五哥
2010-12-30
打赏
举报
回复
你说出你具体的需求嘛,谁没事去弄中文的翻译
XtraGrid使用方法
作者:Liran 来源:博客园 发布时间:2009-12-04 11:01 阅读:463 次 原文链接 [收藏]
XtraGrid的关键类就是:GridControl和GridView。GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中。GridControl是各种View的容器。所以要控制显示,要从GridView这些类入手。关于GridControl与GridView的关系,我不说了。下面给出一段代码。实际使用中常用到。
public Form2()
{
InitializeComponent();
//不显示内置的导航条。
gc1.UseEmbeddedNavigator = false;
//不显示分组的面板
gv1.OptionsView.ShowGroupPanel = false;
gv2.OptionsView.ShowGroupPanel = false;
//自动改变行高适应内容
gv1.OptionsView.RowAutoHeight = true;
gv2.OptionsView.RowAutoHeight = true;
//允许自动合并单元格
gv1.OptionsView.AllowCellMerge = true;
//如果主从表中,没有找到从表内容也要显示(默认是不显示的)
gv1.OptionsDetail.AllowExpandEmptyDetails = true;
//显示自动筛选行(效果跟Excel的自动筛选差不多)
gv2.OptionsView.ShowAutoFilterRow = true;
//使得GridView不能编辑
gv1.OptionsBehavior.Editable = false;
gv2.OptionsBehavior.Editable = false;
//内置编辑器显示的模式
gv1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;
//主从表显示的功能是否可用
//gv1.OptionsDetail.EnableMasterViewMode = false;
//如果显示了主从表,每点开个加号,就会显示一个Tabs,里面往往显示了两个面板。
//事实上没必要这样干的。一般选择关闭。关闭的对象是主GridView的此项属性。
gv1.OptionsDetail.ShowDetailTabs = false;
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
//设置连接字符串
DbHelperSQL.ConnectionString = DbHelperSQL.CreateConnectionString(@"BUDDHAS\SQLEXPRESS", "sa", "00000", "RTDMES");
DataSet ds = new DataSet();
//父GridView的数据
string sql = "select sc_prno,sc_prna from mespb04h";
DbHelperSQL.QueryD(sql,ds,"main");
//子GridView的数据
sql = "select pa_name,pa_no,sc_prno from mespb09h";
DbHelperSQL.QueryD(sql,ds,"son");
//这个是显示主从表的关键,一、GridControl通过检查DataSet.Relations的内容来分析数据
//二、关键名必须与设计GridView的层级关系的level name相同,否则,结果在意料之外。
DataRelation relation = new DataRelation("aa",
ds.Tables["main"].Columns["sc_prno"],
ds.Tables["son"].Columns["sc_prno"]);
ds.Relations.Add(relation);
//这也是一个关键,不能直接设为:ds,必须指明到表。
gc1.DataSource = ds.Tables["main"];
}
上面的代码是显示一个主从表。显示主从表有些技巧。文档中还没有说出来,俺摸索了一个晚上才搞出来。像上面看到的,事实上很简单。
上面DbHelperSQL是我从CodeMatic 2.0中搞出来的,我自己修改了一下。
上面代码的效果图如下:
对于GridView,我有两大疑问:
一、显示主从表,这个解决了。
二、分组显示,这是报表中经常要用到的,GridView的解决方案很简捷,只需将相应列的GroupIndex属性设一下就成了:
在gridcontrol上击右键,选run designer进入设计模式。在columns栏内点retrieve fields将数据源中所有字段导入进来。
点需要分组的字段,在其属性栏的groupindex依次设为0,1..,在不需要分组的字段上保持-1不变。
进入feature browse/summary /group sammary /summary items中增加要分组进行统计的字段。这里要设其fieldname字段名,showingroupcolumnfooter 显示在哪一栏位,sammarytype显示分组后统计的字段是进行sum(求和,求平均,最大值,最小值等)
在grouping /behavior /grneral /可设两个属性
autoexpandallgroups 设为true时将所有分组展开,反之折叠。
showgroupedcolumns是否在网格是显示你分组依据的哪些字段,false为不显示
同样在feature browse/summary /total sammary 这些不是针对分组,而是针对所有行。在summaryitem中对要处理的列进行设置,主要设置需要处理列的column,summarytype.
当然设好后要将optionview的showfooter属性设为true,表格底部会出现一summary行。
补:另有三个属性需要用,我们查询的结果一般是只读的,并且对每一个单元格最好无焦点,故可同时选所有字段,设allowedit为false;allowfocus为false;readonly为true;
为XtraGrid的GridView加行号。示例代码如下:
//设置行指示器的宽度(行指示器就是最左边那列什么都不显示的列)
//默认情况下,如果要在里面显示行号的话,宽度会不足,数字显示不清晰
//所以要改一下宽度
gv1.IndicatorWidth = 20;
private void gv1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
}
}
效果图如下:
常用代码:
//添加分组统计字段
gridView1.GroupSummary.Add(SummaryItemType.Count, "Product Name", gridView1.Columns["Product Name"]);
gridView1.GroupSummary.Add(SummaryItemType.Average, "Unit Price", gridView1.Columns["Unit Price"]);
//设置分组统计字段的显示格式
((GridSummaryItem)gridView1.GroupSummary[gridView1.GroupSummary.Count - 1]).DisplayFormat = "AVR={0:c}";
//设置分组字段
gridView1.Columns["Discontinued"].GroupIndex = 0;
//打开所有分组
gridView1.ExpandAllGroups();
//为控件画边框
ControlPaint.DrawBorder3D(e.Graphics,
r,
(e.Info.State == DevExpress.Utils.Drawing.ObjectState.Pressed ? Border3DStyle.SunkenOuter
: Border3DStyle.RaisedInner));
//焦点单元格的列
gridview1.FocusedColumn
//焦点单元格所在行的行号
gridview1.FocusedRowHandle
//焦点单元格的值
gridview1.FocusedValue
//指定单元格显示的字符串值
gridview1.GetRowCellDisplayText(int rowHandler,string feildName)
//指定单元格的值
gridview1.GetRowCellValue(int rowHandler,string feildName)
//设置焦点单元格所在行指定列的值
gridview1.SetFocusedRowCellValue(GridColumn col,object value)
//设置焦点单元格的值
gridview1.SetFocusedValue(object value)
//设置指定单元格的值
//有了这个函数,就可以手工创建行了。
gridview1.SetRowCellValue(int rowHandler,string feildName,object value)
gridview1.SetRowCellValue(int rowHandler,GridColumn col,object value)
//添加新行的方法
gv1.AddNewRow();
foreach (GridColumn col in gv1.Columns)
{
//用RowCount-1的办法是不行的
//gv1.SetRowCellValue(gv1.RowCount-1, col, "aaaaa");
gv1.SetRowCellValue(gv1.FocusedRowHandle, col, "aaaaa");
}
gv1.UpdateCurrentRow();
//根据绑定的数据源自动产生列
gv1.PopulateColumns();
//为列添加下拉列表(加其他类型如日期、UpDown同理)
RepositoryItemLookUpEdit ri = new RepositoryItemLookUpEdit();
//ri.PopupWidth = 200;
ri.DisplayMember = "sc_prna";
ri.ValueMember = "sc_prno";
DataTable dt1 = DbHelperSQL.QueryT("select sc_prno,sc_prna from mespb04h");
ri.DataSource = dt1;
gv1.Columns["sc_prno"].ColumnEdit = ri;
51Crack
2010-12-30
打赏
举报
回复
没添加列时:
GridControl1.DataSource = dataTable
有列时:
再具体绑定列
GridControl1.DataSource = dataTable
Me.列名.FieldName = dataTable.Columns("id").ColumnName
其它设置options开头的属性里的具体属性就行了!
_三皮_
2010-12-30
打赏
举报
回复
安装了DEV控件,从开始菜单里就能找到DEMO,很丰富的,用法教程很难找到中文的,毕竟是国外的控件,又不是像微软这样的大厂家的
DevExpress.
Xtra
Grid
是一个很强大的表格显示组件
DevExpress.
Xtra
Grid
是一个很强大的表格显示组件,但如果表格的每一列用设计器来设计还是很花时间的,也不通用。但如果使用了这个类,做一个表格就非常简单了,只需传字段、显示的名称、宽度,即可自动生成表格出来...
DevExpress.
Xtra
Grid
3.dll
该dll为DevExpress控件的DevExpress
Xtra
Grid
3 dll
Xtra
Grid
用法大全
Xtra
Grid
控件的用法汇总,大概对这个控件的使用代码
Excel导入到
Xtra
Grid
中
将Excel导入到
Xtra
Grid
中 将Excel导入到
Xtra
Grid
中
Developer Express
Xtra
Grid
Suite All Sources Code
suite fool you - the
Xtra
Grid
Suite, is far more than just a
grid
control. And even more important, if you are committed to delivering top notch features to your customers and want the most ...
VB
16,554
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章