asp.net网格视图模板字段,第二行跨多列

本文关键字:二行 视图 网格 net 字段 asp | 更新日期: 2023-09-27 18:27:59

下午好,我想知道这是否可能。我有一个带有几个(4个模板字段)的网格视图。这4个字段包括

  1. 名字
  2. 姓氏
  3. 电话
  4. 电子邮件

我想做的是在不同的行上获得第五个数据列(地址),这样数据看起来就是这样。

  • 第1行|名字|姓氏|电话|电子邮件|记录#1
  • 第2行|地址|记录#1
  • 第3行|名字|姓氏|电话|电子邮件|记录#2
  • 第4行|地址|记录#2

有人能帮我吗?

asp.net网格视图模板字段,第二行跨多列

由于某些原因,这个问题被投了赞成票。我会给你写一个答案:

<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>