0

BoundField 列を含むグリッドビューがあり、この 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>

私がやりたいことは、BoundField の代わりに、SiteNumber データを div またはパネルに貼り付けることができる新しい行にバインドしたいということです。どうすればこれを行うことができますか?

4

2 に答える 2

1

正しく理解できていない場合はお知らせください。ただし、フィールドのレイアウトをカスタマイズする場合は、BoundField の代わりにTemplateFieldを使用できます。

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

ただし、その特定の列を新しい行に移動することを考えている場合は、GV マークアップがそれほどカスタマイズできないため、ListView や Repeater などの他のデータバインド コントロールを調べる必要があります。

于 2014-03-25T20:58:03.167 に答える
0

通常の時間の制約に従って、Listview を自分のニーズに合わせて使用​​する最善の方法を見つけ出すことはしませんでしたが、TemplateField と ItemTemplate 内のスタイル付きテーブルを使用して、探していたレイアウトを取得する方法を見つけました。次のコードは私が思いついたものであり、これが同様の解決策を探している他の人に役立つことを願っています. 時間の制約があなたのプレートにない場合は、Listview コントロールをさらに調べることを強くお勧めします。PS私が使用したcssは、すべてを完璧にスタイルするための巨大なPITAでしたが、私見では間違いなく価値がありました。そして、これはすべてGridView BTW内にありました

<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 に答える