DataGrid宽度.doc_第1页
DataGrid宽度.doc_第2页
DataGrid宽度.doc_第3页
DataGrid宽度.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DataGrid是.Net Compact FrameWork唯一一个显示大量数据的控件。 1、显示数据。 设置DataGrid.DataSource属性就可以让网格显示数据。可以设置的数据源有: 一个 DataTable; 一个 DataView; 一个 DataSet; 一个 DataViewManager;任何实现 IListSource 接口的组件;任何实现 IList 接口的组件。 显示表中的数据自然想到的就是 DataTable 。 如下: private void fillGrid() / 创建数据cmd string sql; sql = SELECT barcode,SamplingType As 采样类型 ,SamplingDateTime,GPS , SamplingArea , SamplingUser , ModifyTimeStamp FROM U_SoilSampingInfo ; System.Data.SQLite.SQLiteCommand cmd = Program.conn.CreateCommand(); cmd.CommandText = sql; System.Data.SQLite.SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); System.Data.DataSet ds = new DataSet(); System.Data.DataTable dt = new DataTable(U_SoilSampingInfo); ds.Tables.Add(dt); da.Fill(dt); / SetGridStyle(); GridDisplay.DataSource = dt; / 如果数据源为DataSet,这必须设置DataMember属性,如下 GridDisplay.DataSource = dt; GridDisplay.DataMember = U_SoilSampingInfo; 2、设置网格样式 上面的代码只能以默认方式显示数据。通常有一下问题:每列的标题是英文字段名;每列的列宽不够。 DataGrid以网格的形式体现,而DataGridTableStyle 是只代表所绘制网格的类,不是数据。GridTableStylesCollection 包含DataGridTableStyle 对象,这些对象允许 DataGrid 控件为 DataSet 中的每个 DataTable 显示自定义网格样式。 例如: private void SetGridStyle() / 创建 DataGridTableStyle tblStyle = new DataGridTableStyle(); tblStyle.MappingName = U_SoilSampingInfo; / 添加 GridColumnStyle,将其 MappingName 属性对应于DataTable的DataColumn列名 . DataGridColumnStyle col = new DataGridTextBoxColumn(); col.MappingName = BarCode; col.HeaderText = 条码; col.Width = 75; col.NullText = string.Empty; tblStyle.GridColumnStyles.Add(col); / GridDisplay.TableStyles.Add(tblStyle); -DataGridTableStyle myTableStyle = new DataGridTableStyle(); myTableStyle.MappingName = 表名; DataGridColumnStyle col1 = new DataGridTextBoxColumn(); col1 = new DataGridTextBoxColumn(); col1.MappingName = 第一列列名; col1.HeaderText = 列标题; col1.Width = 90;宽度值 DataGridColumnStyle col2 = new DataGridTextBoxColumn(); col2.MappingName = 第二列列名; col2.HeaderText = 列标题; col2.Width = 50;宽度值 .添加多列 myTableStyle.GridColumnStyles.Add(col1); myTableStyle.GridColumnStyles.Add(col2); myTableStyle.GridColumnStyles.Add(col3); dataGrid1.TableStyles.Clear(); dataGrid1.TableStyles.Add(myTableStyle); 最后绑定数据库.01/获取数据 02 03DataSet ds = Helper.DBHelper.Query(sql); 04DataTable dt = ds.Tables0; 05 06/样式登场 07 08DataGridTableStyle ts = new DataGridTableStyle(); 09ts.MappingName = dt.TableName;/此处非常关键,数据表的名字不对,将无法映射成功 10/定义列样式 11DataGridColumnStyle LBarcodeColStyle =new DataGridTextBoxColumn(); 12LBarcodeColStyle.MappingName = Barcode; 13LBarcodeColStyle.HeaderText = 仓位; 14LBarcodeColStyle.Width = 70; 15ts.GridColumnStyles.Add(LBarcodeColStyle); 16/定义列样式 17DataGridColumnStyle UNameColStyle = new DataGridTextBoxColumn(); 18UNameColStyle.MappingName = UserName; 19UNameColStyle.HeaderText = 锁定人; 20UNameColStyle.Width = 60; 21ts.GridColumnStyles.Add(UNameColStyle); 22/定义列样式 23DataGridColumnStyle LockTimeColStyle = new DataGridTextBoxColumn(); 24LockTimeColStyle.MappingName = CreateTime; 25LockTimeColStyle.HeaderText = 锁定时间; 26LockTimeColStyle.Width = 102; 27ts.GridColumnStyles.Add(LockTimeColStyle); 28/将样式和控件绑定到一起 29this.dataGrid1.TableStyles.Add(ts); 30this.dataGrid1.DataSource = dt; 通过以上,就能实现wince下对 Datagrid的数据列宽度等属性的设置了. 另外,在wince下, Datagrid好像没办法设置SelectionMode ,自然也没有FullRowSelect 选项了. 变通一下,使用如下代码实现:view sourceprint?01/对 Datagrid获得焦点和当前cell事件,触发执行选中整行的代码,变通实现了整行选中效果 02 03private void dataGrid1_GotFocus(object sender, EventArgs e) 04 05int index = (DataGrid)sender).CurrentCell.RowNumber; 06(DataGrid)sender).Select(index); 07 08p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论