乱笔.................table控件,带一列合并
2005-11-01 14:00
239 查看
最近有一个项目遇到有合并一列的数据表格,试试DataGrid,当时可以通过ItemBound和ItemCreate事件中,通过单元格的合并方式来进行合并。
事件中的e.Item可以类型转换为 TableRow,但如果想通过 e.Item.Parent方式得到 table 是不可能的。
最终还是作了一个webcontrol,来完成下面的表格。
其中,无非是创建一些TableCell或者是TableRow,给出创建table body的代码
如果比较熟悉HTML编码,创建这些就不在话下了。
1
2 #region 创建表格body
3 private void CreateTableBody()
4 {
5 if(_ds ==null)
6 return;
7 if(_ds.Tables.Count!=2)
8 return;
9
10
11 DataTable groupTable = _ds.Tables[0];
12 DataTable resultTable = _ds.Tables[1];
13 for (int i=0;i<groupTable.Rows.Count;i++)
14 {
15 String GroupRowValue = groupTable.Rows[i][this.GroupRowName].ToString();
16 DataRow[] editionList= resultTable.Select(this.GroupRowName+"='"+GroupRowValue+"'");
17 for(int j=0;j<editionList.Length;j++)
18 {
19 TableRow newRow = new TableRow();
20 newRow.Attributes.Add("class","trbody");
21 this.Controls.Add(newRow);
22 TableCell GroupCell = new TableCell();
23 if(j==0)
24 {
25 GroupCell.RowSpan = editionList.Length;
26 GroupCell.Text = GroupRowValue;
27 if(RowWidth[0]!="")
28 GroupCell.Attributes.Add("width",RowWidth[0]+"px");
29 newRow.Cells.Add(GroupCell);
30 }
31 for(int k=0;k<OtherRowName.Length;k++)
32 {
33 if(OtherRowName[k]!=GroupRowName)
34 {
35 TableCell newCell = new TableCell();
36 newCell.Text = editionList[j][OtherRowName[k]].ToString();
37 if(RowWidth[k]!="")
38 newCell.Attributes.Add("width",RowWidth[k]+"px");
39 newRow.Cells.Add(newCell);
40
41 newCell.RowSpan =1;
42 if(OnBindTableBody!=null)
43 OnBindTableBody(newCell,OtherRowName[k],editionList[j]);
44
45
46
47 }
48 }
49
50 }
51
52
53 }
54
55
56
57
58
59
60
61 }
62 #endregion
设计时候视图
事件中的e.Item可以类型转换为 TableRow,但如果想通过 e.Item.Parent方式得到 table 是不可能的。
最终还是作了一个webcontrol,来完成下面的表格。
其中,无非是创建一些TableCell或者是TableRow,给出创建table body的代码
如果比较熟悉HTML编码,创建这些就不在话下了。
1
2 #region 创建表格body
3 private void CreateTableBody()
4 {
5 if(_ds ==null)
6 return;
7 if(_ds.Tables.Count!=2)
8 return;
9
10
11 DataTable groupTable = _ds.Tables[0];
12 DataTable resultTable = _ds.Tables[1];
13 for (int i=0;i<groupTable.Rows.Count;i++)
14 {
15 String GroupRowValue = groupTable.Rows[i][this.GroupRowName].ToString();
16 DataRow[] editionList= resultTable.Select(this.GroupRowName+"='"+GroupRowValue+"'");
17 for(int j=0;j<editionList.Length;j++)
18 {
19 TableRow newRow = new TableRow();
20 newRow.Attributes.Add("class","trbody");
21 this.Controls.Add(newRow);
22 TableCell GroupCell = new TableCell();
23 if(j==0)
24 {
25 GroupCell.RowSpan = editionList.Length;
26 GroupCell.Text = GroupRowValue;
27 if(RowWidth[0]!="")
28 GroupCell.Attributes.Add("width",RowWidth[0]+"px");
29 newRow.Cells.Add(GroupCell);
30 }
31 for(int k=0;k<OtherRowName.Length;k++)
32 {
33 if(OtherRowName[k]!=GroupRowName)
34 {
35 TableCell newCell = new TableCell();
36 newCell.Text = editionList[j][OtherRowName[k]].ToString();
37 if(RowWidth[k]!="")
38 newCell.Attributes.Add("width",RowWidth[k]+"px");
39 newRow.Cells.Add(newCell);
40
41 newCell.RowSpan =1;
42 if(OnBindTableBody!=null)
43 OnBindTableBody(newCell,OtherRowName[k],editionList[j]);
44
45
46
47 }
48 }
49
50 }
51
52
53 }
54
55
56
57
58
59
60
61 }
62 #endregion
设计时候视图
相关文章推荐
- DEV 控件 GridControl 中合并一列中值相等但是不相邻的单元格
- c# winForm TableLayoutPanel学习 合并行的布局及动态增加删除内部控件
- c# winForm TableLayoutPanel学习 合并行的布局及动态增加删除内部控件
- Table 控件单元格的动态合并技术
- Table 控件单元格的动态合并技术 .
- table_横向合并_纵向合并
- DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案
- js合并table
- iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示
- Oracle 将表中两列的内容合并到另外一列当中去
- ASP.NET动态增加或减少TABLE列和行 控件实例
- iphone 下拉刷新控件 EGORefreshTableHeaderView 手动显示更新
- iPhone开发【七】常用控件之表TableView
- js获取某个控件的集合并添加属性或事件
- VS2005 系列控件演示之 表格《Table》
- UITableView (4): 在TableView中移动cell和Section 从TableView中删除cell和section 添加系统默认刷新控件
- HTML table合并行列后,使用百分比设置列宽
- UI控件笔记(十二):UI之TableEdit\ UISearchBar\自定义实时搜索\ 索引
- 利用CSS边框合并属性打造table细边框
- Developer Express控件组合中的gridcontrol控件,如何自动显示每一列的序号?