asp.net gridview模板字段,第二行跨越多列

时间:2014-10-27 21:36:27

标签: c# asp.net gridview aspxgridview

下午好, 我想知道这是否可行。我有几个(4个模板字段)的gridview。这四个领域包括

  1. 名字
  2. 姓氏
  3. 电话
  4. 电子邮件
  5. 我想要做的是在另一行上完全获得第五个数据列(地址),以便数据看起来像这样。

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

    有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

出于某种原因,这个问题被赞成。我会给你写一个答案:

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

我会留下css部分,如果你想让列名查看<th>标签,但我不知道你在第1行的列上如何正确实现不同的表单行2.如果您想要删除/编辑功能,则应添加带有td的新linkButton/ImageButton/Button,其功能将删除/编辑当前行。为此,您需要在按钮的<%#Eval("ID")%>CommandArguments。但在这种情况下,这将是有趣的,因为你有2行一条记录。设计决策由您完成,这是解决方案。

你应该看看如何在第1行上有多个列,在第2行只有一个,这是td colspan的属性

在代码背后:

        repeater1.DataSource = dst; // this should be data set containing all the needed values
        repeater1.DataBind();

答案 1 :(得分:0)

我不知道为什么您可以在 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>