asp.net网格视图模板字段,第二行跨多列
本文关键字:二行 视图 网格 net 字段 asp | 更新日期: 2023-09-27 18:27:59
下午好,我想知道这是否可能。我有一个带有几个(4个模板字段)的网格视图。这4个字段包括
- 名字
- 姓氏
- 电话
- 电子邮件
我想做的是在不同的行上获得第五个数据列(地址),这样数据看起来就是这样。
- 第1行|名字|姓氏|电话|电子邮件|记录#1
- 第2行|地址|记录#1
- 第3行|名字|姓氏|电话|电子邮件|记录#2
- 第4行|地址|记录#2
有人能帮我吗?
由于某些原因,这个问题被投了赞成票。我会给你写一个答案:
<table>
<asp:Repeater runat="server" ID="repeater1" >
<ItemTemplate>
<tr>
<td> <%#Eval("FirstName")%></td>
<td> <%#Eval("LastName")%></td>
....//other <td></td>
</tr>
<tr>
<td><%#Eval("Address")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
如果你想让列名查看<th>
标记,我将把css部分留给你,但我不知道当你在第1行有不同于第2行的列时,你将如何正确地实现这一点。如果您希望具有删除/编辑功能,则应使用linkButton/ImageButton/Button
添加新的td
,该功能将删除/编辑当前行。为此,您将需要按钮的CommandArguments
中的<%#Eval("ID")%>
。但在这种情况下,这将是有趣的,因为您在2行上有一条记录。设计决策由您完成,这就是解决方案。
您可能应该了解如何在第1行上有多个列,而在第2行上只有一个列,这是td colspan 的属性
在代码背后:
repeater1.DataSource = dst; // this should be data set containing all the needed values
repeater1.DataBind();
我不知道为什么在GridView中可以做到这一点不是更常见的知识。您可以混合和匹配跨区行,并在跨区结束时抛出一些常规GridView列(绑定或模板化)。
您确实失去了GridView的一些功能,因为您将不得不手动处理排序和其他一些使GridView易于使用的事情。但与Repeater不同的是,您仍然可以获得GridView的一些额外功能。
如果您将一个与我在此处绑定的字段匹配的数据源放在一起,您将看到它有一个跨多列的第二行(一直到GridView的最后一个模板列)。
它基本上是一个标题模板,两个HTML表,然后是之后需要的任何类型的GridView列(如果有的话)。
第一个html表是正常行。第二个html表只是一个很长的行,用来放置类似于长描述或注释的内容。
这里没有包含CSS,但这就是设置列宽和对齐方式的方式。
工作正常,但建造这些肯定需要更长的时间。您必须花费大量时间来调整列宽,并且使标题列与行列匹配是一件痛苦的事情。但是,与你为中继器制作模板时遇到的情况没有太大区别。
<asp:GridView ID="GridView2" AutoGenerateColumns="False" runat="server" >
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<table id="Table1" runat="server" >
<tr id="Tr1" runat="server" >
<td id="Td1" style="width: 55px; text-align: center; vertical-align: bottom; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbPoNoSort" CommandArgument="id" CommandName="Sort" runat="server">ID#</asp:LinkButton></td>
<td id="Td2" style="width: 85px;" runat="server">
<asp:LinkButton ID="lbDateRequested" CommandArgument="ReqDate" CommandName="Sort" runat="server">Date</asp:LinkButton></td>
<td id="Td3" style="width: 100px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lblNameSort" CommandArgument="col2" CommandName="Sort" runat="server">Name</asp:LinkButton></td>
<td id="Td4" style="width: 130px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lblApprovSort" CommandArgument="approved_by" CommandName="Sort" runat="server">User</asp:LinkButton></td>
<td id="Td5" style="width: 175px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbVendorSort" CommandArgument="vendor" CommandName="Sort" runat="server">Vendor</asp:LinkButton></td>
<td id="Td7" style="width: 150px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbTypeSort" CommandArgument="col4" CommandName="Sort" runat="server">Type</asp:LinkButton></td>
<td id="Td8" style="width: 65px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbNoSort" CommandArgument="col5" CommandName="Sort" runat="server">OrderNo</asp:LinkButton></td>
<td id="Td9" style="width: 90px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbCostSort" CommandArgument="col6" CommandName="Sort" runat="server">Est. Cost</asp:LinkButton></td>
<td id="Td10" style="width: 75px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbPaymentTypeSort" CommandArgument="col10" CommandName="Sort" runat="server">Payment Type</asp:LinkButton></td>
<td id="Td11" style="width: 75px; text-align: center; vertical-align: bottom; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:LinkButton ID="lbLocationSort" CommandArgument="col7" CommandName="Sort" runat="server">Inventory Location</asp:LinkButton></td>
<td id="Td12" style="width: 75px; text-align: center; vertical-align: bottom; border-left: solid 1px black;" runat="server">
<asp:LinkButton ID="lbDeliverySort" CommandArgument="col13" CommandName="Sort" runat="server">Delivery Method</asp:LinkButton></td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table >
<tr>
<td style="width: 55px; text-align: center; vertical-align: top; border-right: solid 1px black;">
<asp:Label ID="Label7" runat="server" Visible="false" Text='<%# Bind("id") %>'></asp:Label>
<asp:LinkButton ID="lbPoNo" CommandName="View" runat="server" Visible="true" Text='<%# Bind("id") %>' ></asp:LinkButton>
</td>
<td style="width: 85px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Date")%>' >
</asp:Label>
</td>
<td style="width: 100px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label3" runat="server" Text='<%# Eval("col1")%>' >
</asp:Label>
</td>
<td style="width: 130px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label4" runat="server" Text='<%# Eval("col2")%>' >
</asp:Label>
</td>
<td style="width: 175px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label5" runat="server" Text='<%# Eval("col3")%>' >
</asp:Label>
</td>
<td style="width: 150px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label6" runat="server" Text='<%# Eval("col4")%>' >
</asp:Label>
</td>
<td style="width: 65px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:LinkButton ID="lbOrderNo" runat="server" CommandName="ViewOrder" Text='<%# DataBinder.Eval(Container.DataItem, "col5") %>'></asp:LinkButton>
</td>
<td style="width: 90px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:Label ID="Label8" runat="server" Text='<%# Eval("col6")%>' >
</asp:Label>
</td>
<td style="width: 75px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;" runat="server">
<asp:Label ID="Label9" runat="server" Text='<%# Eval("col7")%>' >
</asp:Label>
</td>
<td style="width: 75px; text-align: center; vertical-align: top; border-left: solid 1px black; border-right: solid 1px black;">
<asp:Label ID="Label10" runat="server" Text='<%# Eval("col8")%>' >
</asp:Label>
</td>
<td style="width: 75px; text-align: center; vertical-align: top; border-left: solid 1px black;">
<asp:Label ID="Label11" runat="server" Text='<%# Eval("col9")%>' >
</asp:Label>
</td>
</tr>
</table>
<table class="job-info">
<tr class="TableData">
<td style="width: 1100px">
<asp:Label ID="Label13" CssClass="details" runat="server" Text="Details:" ></asp:Label> <asp:Label ID="Label12" BackColor="WhiteSmoke" runat="server" Text='<%# Eval("col10")%>' >
</asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="True" HeaderText="Accounting">
<ItemTemplate>
<asp:CheckBox ID="check" runat="server" Enabled="False" />
</ItemTemplate>
<HeaderStyle Width="60px" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>