国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

XtraGrid使用心得(折疊式主細檔、分組統(tǒng)計)

2019-11-17 02:35:44
字體:
來源:轉載
供稿:網(wǎng)友
XtraGrid使用心得(折疊式主細檔、分組統(tǒng)計)

XtraGrid的關鍵類就是:GridControl和GridView。GridControl本身不顯示數(shù)據(jù),數(shù)據(jù)都是顯示在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的數(shù)據(jù) string sql = "select sc_prno,sc_prna from mespb04h"; DbHelperSQL.QueryD(sql,ds,"main");

//子GridView的數(shù)據(jù) sql = "select pa_name,pa_no,sc_prno from mespb09h"; DbHelperSQL.QueryD(sql,ds,"son");

//這個是顯示主從表的關鍵,一、GridControl通過檢查DataSet.Relations的內容來分析數(shù)據(jù) //二、關鍵名必須與設計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中搞出來的,我自己修改了一下。

  上面代碼的效果圖如下:

   XtraGrid使用心得一 - 伯平 - 滌心齋

  XtraGrid使用心得一 - 伯平 - 滌心齋

  對于GridView,我有兩大疑問:

  一、顯示主從表,這個解決了。

  二、分組顯示,這是報表中經(jīng)常要用到的,GridView的解決方案很簡捷,只需將相應列的GroupIndex屬性設一下就成了。 ================================================================================================ 為XtraGrid的GridView加行號。示例代碼如下: //設置行指示器的寬度(行指示器就是最左邊那列什么都不顯示的列) //默認情況下,如果要在里面顯示行號的話,寬度會不足,數(shù)字顯示不清晰 //所以要改一下寬度 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(); } }  效果圖如下:    常用代碼://添加分組統(tǒng)計字段gridView1.GroupSummary.Add(SummaryItemType.Count, "Product Name", gridView1.Columns["Product Name"]);gridView1.GroupSummary.Add(SummaryItemType.Average, "Unit Price", gridView1.Columns["Unit Price"]);//設置分組統(tǒng)計字段的顯示格式((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)//設置指定單元格的值//有了這個函數(shù),就可以手工創(chuàng)建行了。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();//根據(jù)綁定的數(shù)據(jù)源自動產生列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;


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴文县| 论坛| 缙云县| 萝北县| 印江| 罗定市| 灵川县| 响水县| 二连浩特市| 全州县| 湘潭市| 习水县| 静宁县| 革吉县| 社会| 蕲春县| 长乐市| 河北区| 罗定市| 都昌县| 海安县| 台江县| 石河子市| 肃宁县| 郧西县| 瑞昌市| 鱼台县| 屏山县| 临武县| 上饶县| 治县。| 镇沅| 米易县| 上林县| 公主岭市| 邹平县| 阿巴嘎旗| 天祝| 汨罗市| 平阳县| 泽库县|