最近做的项目用到了DataGrid多层表头,问了很多人,自己感觉回答不是很明确,自己总结了一下,希望能够使以后使用的兄弟们少走弯路。 
类似于上面的一个情况,乍一看,还以为要通过Table来实现哪,但是相信强大的DataGrid,于 是开始寻找方法。一些前辈们的讲解就是TableCellCollection 中添加TableHeaderCell(这应该是基础的 内容)。 图中是繁体,我用简体来说。 <asp:datagrid id="UserDg" OnItemCreated="DataGrid1_ItemCreated" Public Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) If e.Item.ItemType = ListItemType.Header Then Dim tcl As TableCellCollection = e.Item.Cells tcl.Clear() tcl.Add(New TableHeaderCell) tcl(0).RowSpan = 2 tcl(0).Text = "个人编码" tcl.Add(New TableHeaderCell) tcl(1).RowSpan = 2 tcl(1).Text = "性别" tcl.Add(New TableHeaderCell) tcl(2).RowSpan = 2 tcl(2).Text = "姓名" tcl.Add(New TableHeaderCell) tcl(3).RowSpan = 2 tcl(3).Text = "服务<br>次数" tcl.Add(New TableHeaderCell) tcl(4).RowSpan = 2 tcl(4).Text = "用户<br>修改" tcl.Add(New TableHeaderCell) tcl(5).RowSpan = 2 tcl(5).Text = "健康<br>清单" tcl.Add(New TableHeaderCell) tcl(6).ColumnSpan = 4 tcl(6).Text = "个人疾病危险性评价</td><td colspan='1' rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>管理<br>处方</font></td><td rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>汇总<br>报告 </font></td><td rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>重点<br>提示</font></td></tr><tr><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>糖尿病</font></td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>中风</font></td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>冠心病</font> </td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>肺癌</font>" End If End Sub 'DataGrid1_ItemCreated 关键的部分是 tcl.Add(New TableHeaderCell) tcl(6).ColumnSpan = 4 tcl(6).Text = "个人疾病危险性评价</td><td colspan='1' rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>管理<br>处方</font></td><td rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>汇总<br>报告 </font></td><td rowspan='2' align=center valign=middle bgcolor='#0082C6'><font color='#ffffff'>重点<br>提示</font></td></tr><tr><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>糖尿病</font></td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>中风</font></td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>冠心病</font> </td><td bgcolor='#848284' align='center' valign='middle'><font color='#ffffff'>肺癌</font>" 我自己的步骤是:现在Table中设计出来结构,然后将双引号变成单引号,在添加到TableHeaderCell.text中就可以了。多复杂的都可以实现。 希望对还不会使用DataGrid多层表头设计的兄弟们有所帮助!

|