关于GridView的跨列跨行显示 想要实现如图效果其中有三个字段 送り主 届け先 メモ 是跨列跨行显示的不知道如何实现 请教一下大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置 TableCell的 RowSpan和 ColumnSpan 属性 一列のデータを[WEB ユーザコントロール]として作成したら、GridViewのTemplateFieldにバンドしてほうが良いと思う。 你用gridwiew模板可以实现,步骤如下1,建一个gridwiew2,追加一列3,对列进行模板编辑4,追加一个table,通过对table进行合并行和列来实现 <asp:GridView ID="gvRightData" runat="server" AllowPaging="True" AutoGenerateColumns="False" BorderStyle="None" BorderWidth="0px" CellPadding="0" ShowHeader="False" Width="638px" Font-Names="MS Pゴシック" ForeColor="#666666" ShowFooter="True"> <Columns> <asp:TemplateField> <ItemStyle Width="638px" /> <ItemTemplate> <table border="0" cellpadding="0" cellspacing="0" style="width: 638px; height: 148px; border-bottom-width: 3px; border-bottom-color: gray; color: #666666;" id="TABLE1" onclick="return TABLE1_onclick()"> <tr> <td colspan="5" style="height: 0px"> <asp:Label ID="labBunruiMeisyou" runat="server" Text='<%# fBunruiMeisyou() %>' Font-Size="12pt" Font-Names="MS Pゴシック"></asp:Label></td> </tr> <tr> <td rowspan="6" style="width: 91px; height: 128px;" valign="top"> <table border="0" cellpadding="0" cellspacing="0" style="width: 91px; height: 128px"> <tr> <td> <asp:HyperLink ID="HyperLink1" runat="server" ImageUrl='<%# "~/data/" & Eval("catalog_cd") & ".jpg" %>' NavigateUrl='<%# Eval("top_url") %>' Target="_blank" Text='<%# "" %>' ToolTip='<%# Eval("catalog_nm") %>'></asp:HyperLink></td> </tr> </table> </td> <td style="width: 10px; height: 21px;"> </td> <td align="left" style="font-size: 10pt; width: 110px; height: 21px" valign="top"> カタログ名称:</td> <td style="width: 10px; height: 21px;"> </td> <td align="left" style="font-size: 10pt; width: 417px; height: 21px;" valign="top"> <asp:Image ID="imgIcon02" runat="server" ImageUrl="~/Pic//icon_arrow01.gif" /><asp:HyperLink ID="hlMeisyou" runat="server" NavigateUrl='<%# eval("top_url") %>' Text='<%# Eval("catalog_nm") %>' Font-Bold="True" Font-Strikeout="False" ForeColor="#00C5B3" Target="_blank" Height="17px" ></asp:HyperLink> <asp:Image ID="imgNew" runat="server" ImageUrl="~/Pic//icon__01.gif" Visible='<%# eval("t_date").ToString >= now.ToString("yyyy/MM/dd") %>' /> <asp:Image ID="imgKousin" runat="server" ImageUrl="~/Pic//icon__02.gif" Visible='<%# eval("k_date").ToString >= now.ToString("yyyy/MM/dd") %>' /> </td> </tr> <tr style="font-size: 12pt"> <td style="width: 10px; height: 21px;"> </td> <td align="left" style="font-size: 10pt; width: 110px; height: 21px" valign="top"> カタログ説明:</td> <td style="width: 10px; height: 21px;"> </td> <td align="left" style="width: 417px; height: 21px; font-size: 10pt;" valign="top"> <asp:Label ID="labSetumei" runat="server" Text='<%# Eval("catalog_exp") %>'></asp:Label></td> </tr> <tr> <td colspan="5" style="font-size: 10pt; border-bottom-width: 2px; border-bottom-color: gray; height: 3px; width: 638px;" valign="middle"> <asp:Image ID="imgLine" runat="server" ImageUrl="~/Pic//line_638_web_cat.gif" Width="100%" /></td> </tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle HorizontalAlign="Center" ForeColor="#00C5B3" Font-Size="10pt" Font-Strikeout="False" Font-Names="MS Pゴシック" /> <FooterStyle Height="20px" /> </asp:GridView> [WEB ユーザコントロール]能详细说明一下吗 不太明白 你点[新しい項目の追加]有这项.就是创建个模块,把一行数据(<td></td>)的部分写到里面其实9楼的也是这个思想,不过将共通的部分模块化更好点 你不让他显示表头,然后在gridwiew上面作一个table,只是现实表头不就可以了吗 随便写了个例子 <asp:gridview ID="Gridview1" runat="server" OnRowDataBound="Gridview1_RowDataBound" AutoGenerateColumns=false> <Columns> <asp:TemplateField> <ItemTemplate> <%# Eval("a") %></td><td>A01</td><td>A02</td><td>A03</td></tr> <tr><td colspan=2><%# Eval("b") %></td><td>B02</td></tr> <tr><td colspan=3><%# Eval("c") %></td> </ItemTemplate> </asp:TemplateField> </Columns> </asp:gridview> protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("a", typeof(String)); dt.Columns.Add("b", typeof(String)); dt.Columns.Add("c", typeof(String)); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr[0] = (i/3).ToString(); dr[1] = "1" + i.ToString(); dr[2] = "2" + i.ToString(); dt.Rows.Add(dr); } this.Gridview1.DataSource = dt; this.Gridview1.DataBind(); } protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { TableCell tb0 = e.Row.Cells[0]; tb0.RowSpan = 3; } }你看看效果如何要是规范的话 把 <%# Eval("a") %></td><td>A01</td><td>A02</td><td>A03</td></tr> <tr><td colspan=2><%# Eval("b") %></td><td>B02</td></tr> <tr><td colspan=3><%# Eval("c") %></td>用[WEB ユーザコントロール] 实现更好点,当然直接写也是可以的,就是乱点 例子<body bgcolor="#ffffff"> 动态给程序添加实体类 - 求解 应该怎么办,上班很烦躁 "从元数据," 是不是系统自带的数据 关于asp.net【Ajax添加】后台返回值问题!在线等 页面显示问题 无法转换 asp.net用XML文件做数据源极限数据量 GridView问题????? 防用户重复登录的方法 新建web应用程序 出现无法创建或打开应用程序 它要我添加web开发组件 我安装已经安装了 怎么又要添加? 求.net 采集类(vb.net的) 请问这样的sql语句怎么写
GridViewのTemplateFieldにバンドしてほうが良いと思う。
1,建一个gridwiew
2,追加一列
3,对列进行模板编辑
4,追加一个table,通过对table进行合并行和列来实现
<asp:GridView ID="gvRightData" runat="server" AllowPaging="True" AutoGenerateColumns="False"
BorderStyle="None" BorderWidth="0px" CellPadding="0" ShowHeader="False"
Width="638px" Font-Names="MS Pゴシック" ForeColor="#666666" ShowFooter="True">
<Columns>
<asp:TemplateField>
<ItemStyle Width="638px" />
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" style="width: 638px; height: 148px; border-bottom-width: 3px; border-bottom-color: gray; color: #666666;" id="TABLE1" onclick="return TABLE1_onclick()">
<tr>
<td colspan="5" style="height: 0px">
<asp:Label ID="labBunruiMeisyou" runat="server" Text='<%# fBunruiMeisyou() %>' Font-Size="12pt" Font-Names="MS Pゴシック"></asp:Label></td>
</tr>
<tr>
<td rowspan="6" style="width: 91px; height: 128px;" valign="top">
<table border="0" cellpadding="0" cellspacing="0" style="width: 91px; height: 128px">
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server" ImageUrl='<%# "~/data/" & Eval("catalog_cd") & ".jpg" %>'
NavigateUrl='<%# Eval("top_url") %>' Target="_blank" Text='<%# "" %>' ToolTip='<%# Eval("catalog_nm") %>'></asp:HyperLink></td>
</tr>
</table>
</td>
<td style="width: 10px; height: 21px;">
</td>
<td align="left" style="font-size: 10pt; width: 110px; height: 21px" valign="top">
カタログ名称:</td>
<td style="width: 10px; height: 21px;">
</td>
<td align="left" style="font-size: 10pt; width: 417px; height: 21px;" valign="top">
<asp:Image ID="imgIcon02" runat="server" ImageUrl="~/Pic//icon_arrow01.gif" /><asp:HyperLink ID="hlMeisyou" runat="server" NavigateUrl='<%# eval("top_url") %>'
Text='<%# Eval("catalog_nm") %>' Font-Bold="True" Font-Strikeout="False" ForeColor="#00C5B3" Target="_blank" Height="17px" ></asp:HyperLink>
<asp:Image ID="imgNew" runat="server" ImageUrl="~/Pic//icon__01.gif"
Visible='<%# eval("t_date").ToString >= now.ToString("yyyy/MM/dd") %>' />
<asp:Image ID="imgKousin" runat="server" ImageUrl="~/Pic//icon__02.gif"
Visible='<%# eval("k_date").ToString >= now.ToString("yyyy/MM/dd") %>' />
</td>
</tr>
<tr style="font-size: 12pt">
<td style="width: 10px; height: 21px;">
</td>
<td align="left" style="font-size: 10pt; width: 110px; height: 21px" valign="top">
カタログ説明:</td>
<td style="width: 10px; height: 21px;">
</td>
<td align="left" style="width: 417px; height: 21px; font-size: 10pt;" valign="top">
<asp:Label ID="labSetumei" runat="server" Text='<%# Eval("catalog_exp") %>'></asp:Label></td>
</tr>
<tr>
<td colspan="5" style="font-size: 10pt; border-bottom-width: 2px; border-bottom-color: gray;
height: 3px; width: 638px;" valign="middle">
<asp:Image ID="imgLine" runat="server" ImageUrl="~/Pic//line_638_web_cat.gif" Width="100%" /></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#00C5B3" Font-Size="10pt" Font-Strikeout="False" Font-Names="MS Pゴシック" />
<FooterStyle Height="20px" />
</asp:GridView>
能详细说明一下吗 不太明白
你点[新しい項目の追加]有这项.就是创建个模块,把一行数据(<td></td>)的部分写到里面
其实9楼的也是这个思想,不过将共通的部分模块化更好点
<asp:gridview ID="Gridview1" runat="server" OnRowDataBound="Gridview1_RowDataBound" AutoGenerateColumns=false>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("a") %></td><td>A01</td><td>A02</td><td>A03</td></tr>
<tr><td colspan=2><%# Eval("b") %></td><td>B02</td></tr>
<tr><td colspan=3><%# Eval("c") %></td>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("a", typeof(String));
dt.Columns.Add("b", typeof(String));
dt.Columns.Add("c", typeof(String));
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr[0] = (i/3).ToString();
dr[1] = "1" + i.ToString();
dr[2] = "2" + i.ToString();
dt.Rows.Add(dr);
}
this.Gridview1.DataSource = dt;
this.Gridview1.DataBind(); } protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell tb0 = e.Row.Cells[0];
tb0.RowSpan = 3; }
}你看看效果如何要是规范的话
把
<%# Eval("a") %></td><td>A01</td><td>A02</td><td>A03</td></tr>
<tr><td colspan=2><%# Eval("b") %></td><td>B02</td></tr>
<tr><td colspan=3><%# Eval("c") %></td>
用[WEB ユーザコントロール] 实现更好点,当然直接写也是可以的,就是乱点
<body bgcolor="#ffffff">