0

我有一个带有 BoundField 列的 gridview,我想专门为此 BoundField 插入一个新行。这是可以做到的吗?

代码如下:

                 <asp:GridView ID="grdAgreements" runat="server" AutoGenerateColumns="false" Width="100%"
        AllowSorting="false" AlternatingRowStyle-BackColor="White" 
        HeaderStyle-BackColor="White" HeaderStyle-ForeColor="GrayText" 
        Font-Names="Arial" Font-Size="11" DataKeyNames="AgreementId" OnRowCreated="grdAgreements_RowCreated" >
        <rowstyle height="24" />

    <Columns>
        <asp:BoundField HeaderText="Agreement Number" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="AgreementNumber" SortExpression="AgreementNumber" ItemStyle-Width="110" ItemStyle-Font-Names="Arial" />
        <asp:BoundField HeaderText="Description" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="Description" SortExpression="Description" ItemStyle-Width="100" ItemStyle-Font-Names="Arial" />
        <asp:BoundField HeaderText="Start Date" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="StartDate" SortExpression="StartDate" ItemStyle-Width="125" ItemStyle-Font-Names="Arial" />
        <asp:BoundField HeaderText="End Date" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="EndDate" SortExpression="EndDate" ItemStyle-Width="200" ItemStyle-Font-Names="Arial" />

        <asp:BoundField HeaderText="Site Number" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="SiteNumber" SortExpression="SiteNumber" ItemStyle-Width="200" ItemStyle-Font-Names="Arial" />

    </Columns>

    <EmptyDataTemplate>
        There are no agreements to display.
    </EmptyDataTemplate>
</asp:GridView>

我想要发生的是,我希望将 SiteNumber 数据绑定到可以粘贴在 div 或面板中的新行,而不是 BoundField。我该怎么做呢?

4

2 回答 2

1

如果我理解不正确,请告诉我,但如果您想自定义字段的布局,您可以使用TemplateField而不是 BoundField

<asp:TemplateField HeaderText="SiteNumber" SortExpression="SiteNumber">
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("SiteNumber") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

但是,如果您正在考虑将该特定列移动到新行,那么您将不得不查看其他数据绑定控件,例如 ListView 或 Repeater,因为 GV 标记不是那么可定制的。

于 2014-03-25T20:58:03.167 回答
0

根据通常的时间限制,我没有通过并找出使用 Listview 来满足我的需求的最佳方法,但我确实找到了一种方法来获得我正在寻找的布局,使用 TemplateField 和 ItemTemplate 中的样式表。以下代码是我想出的,希望这能帮助其他人寻找类似的解决方案。如果您没有时间限制,我强烈建议您进一步研究 Listview 控件。PS 我使用的 css 是一个巨大的 PITA,可以让所有的东西都变得完美,但恕我直言,这绝对值得。而这一切都在一个 GridView 顺便说一句

<asp:TemplateField>
      <ItemTemplate>
      <div class="EquipmentTable1" >
            <table >
                <tr>
                    <td>
                        Customer Equipment
                    </td>
                    <td>
                        Contract
                    </td>
                    <td >
                        Contract Number
                    </td>

                    <td>
                        Modality
                    </td>
                </tr>
                <tr>
                    <td>
                    <%--TODO link this to the customer equipment record pulled from the services web portal guide part 1 document--%>
                      <a href="../Agreements/AgreementList.aspx?CustomerEquipmentID=<%# Eval("CustomerEquipmentID") %>"><%# Eval("CustomerEquipmentID") %>  </a> 
                    </td>
                    <td >
                    <%--Link to the agreement page and
                    pass in the agreement id as a query string to do a lookup of the agreement--%>
                    <a href="../Agreements/AgreementView.aspx?AgreementID=<%# Eval("AgreementID") %>"><%# Eval("AgreementID") %></a>
                    </td>
                    <td>
                        <%# Eval("AgreementLineID") %>
                    </td>

                     <td>
                        <%# Eval("ModalityID") %>
                    </td>
                </tr>
            </table>
        </div>
  <div class="EquipmentTable2" >
            <table >
                <tr>
                    <td>
                       Product
                    </td>
                    <td >
                        Model Number
                    </td>
                    <td>
                        Room Number
                    </td>
                    <td>
                        Date Installed
                    </td>
                </tr>
                <tr>
                    <td >
                        <%# Eval("Product") %>
                    </td>
                    <td>
                       <%# Eval("ModelNumber") %>
                    </td>
                     <td>
                       <%# Eval("RoomNumber") %>
                    </td>
                    <td>
                        <%# Eval("DateInstalled") %>
                    </td>
                </tr>
            </table>
        </div>
      </ItemTemplate>
      </asp:TemplateField>
于 2014-03-31T14:17:46.817 回答