当前位置:编程学习 > C#/ASP.NET >>

一个表头合并的问题,问了好多人了~~~~~~~~~~~~~~~~~~~~~~~~~~

我在客户端是这样写的,不知道有没有错


<body leftMargin="0" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 248px; POSITION: absolute; TOP: 128px"
runat="server" AutoGenerateColumns="False" BorderColor="Black">
<Columns>
<asp:TemplateColumn HeaderText="业务员 ">
<HeaderStyle Wrap="False"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CHG_DPNO") %>' ID="CHG_DPNO" >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="地区">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CHG_NAME") %>' ID="CHG_NAME" >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn >
<HeaderStyle Wrap="False" Width="0px"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CHG_MDLSCOT") %>' ID="CHG_MDLSCOT" >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="</td></tr><tr><td>北京</td><td>上海</td><td>深圳</td></tr>">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CHG_UNITPRICE") %>' ID="CHG_UNITPRICE" >
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid></FONT></form>
</body>




在服务器端


private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
int k=e.Item.Cells.Count;
e.Item.Cells[0].RowSpan = 2;
e.Item.Cells[1].ColumnSpan =3;
e.Item.Cells[2].Visible = false;
//e.Item.Cells[3].Visible = false;
}


实现起来,最后多了一列,不知道怎么去掉


如果使用e.Item.Cells[3].Visible = false;
会变成
晕了!!!,拜托~~ --------------------编程问答-------------------- 表头和内容分开做 --------------------编程问答-------------------- 我是参考http://blog.csdn.net/gauzxj/archive/2008/04/20/2309128.aspx 
可是是按照那个方法做的为什么总是对多一列呢?帮忙帮忙~~~~ --------------------编程问答-------------------- 把 "</td></tr><tr><td>北京</td><td>上海</td><td>深圳</td></tr>" 放在第三列,你放在了第四列了。
--------------------编程问答-------------------- 我放在第四列出来的格式也是错的
--------------------编程问答--------------------  无限层复杂表头的实现    http://dotnet.aspx.cc/article/01c21aa8-7de7-4c5d-ab0c-4736e259b773/read.aspx --------------------编程问答-------------------- 好像你混乱了一些概念
表头式表头,内容是内容
业务员怎么可能同时属于北京,上海,深圳呢,这三个城市的数字又怎么会是一样的呢
你这就不是什么多表头的问题,是设计问题,思路问题

业务员 地区 内容1 内容2 内容3
001 上海 Cssfsf 前门外开把手 3.13
002 深圳 Cssfsf 前门外开把手 5.05
003 北京 Cssfsf 前门外开把手 3.13
004 美国 Cssfsf 前门外开把手 3.13
--------------------编程问答-------------------- 学习! --------------------编程问答--------------------
引用 5 楼 virusplayer 的回复:
 无限层复杂表头的实现    http://dotnet.aspx.cc/article/01c21aa8-7de7-4c5d-ab0c-4736e259b773/read.aspx


这个是好东西,现学习! --------------------编程问答-------------------- 可惜我用的不是2005,唉,不然就不会这么烦了 --------------------编程问答-------------------- 或者用其他方法能实现上面的效果也可以哦~ --------------------编程问答--------------------
引用 4 楼 ASP_sem 的回复:
我放在第四列出来的格式也是错的 


这句e.Item.Cells[3].Visible = false;加上应该就好了
--------------------编程问答-------------------- 加上去了,格式也是错的,在一楼的时候我就有写了哦

 如果使用e.Item.Cells[3].Visible = false; 
。。。
一楼有图 --------------------编程问答-------------------- 呵呵,



</td></tr><TR><TD>北京</TD><TD>上海</TD><TD>深圳</TD></TR>

改为


</td></tr><TR><TD>北京</TD><TD>上海</TD><TD>深圳


即可.那一堆<>搞晕头了 --------------------编程问答-------------------- 改了还是
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,