0

私は GridView を持っており、問題なくこのグリッドにデータをバインドしています。私が問題を抱えているのは、ヘッダーをグリッドの行と一致させることです。

<asp:GridView ID="gvMyGrid" runat="server" 
            AutoGenerateColumns="False" BackColor="White" 
            BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" 
            ForeColor="Black" GridLines="Vertical">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <table>
                            <tr>
                                <td>
                                    Date    
                                </td>
                                <td>
                                    Merchant
                                </td>
                                <td>
                                    Description
                                </td>
                                <td>
                                    Amount
                                </td>
                                <td>
                                    Status
                                </td>
                            </tr>
                        </table>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <table>
                            <tr>
                                <td>
                                    <asp:Label ID="lblTransactionDate" runat="server" Text='<%# String.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(Eval("transactionDate"))) %>'></asp:Label>            
                                </td>
                                <td>
                                    <asp:Label ID="lblAcceptLocation" runat="server" Text='<%# Eval("acceptLocation").ToString() %>'></asp:Label>            
                                </td>
                                <td>
                                    <asp:TextBox ID="tbItemDescription" runat="server"></asp:TextBox>            
                                </td>
                                <td>
                                    <asp:Label ID="lblAmount" runat="server" Text='<%# Eval("preAuthAmount") %>'></asp:Label>
                                </td>
                                <td>
                                    <asp:Label ID="lblStatus" runat="server" Text='<%# Eval("transactionStatus") %>'></asp:Label>            
                                </td>
                                <td>
                                    <asp:LinkButton ID="LinkButton1" runat="server" Text="Assign +" OnClick="BtnAssign"></asp:LinkButton>   
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#CCCC99" />
            <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
            <RowStyle BackColor="#F7F7DE" />
            <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#FBFBF2" />
            <SortedAscendingHeaderStyle BackColor="#848384" />
            <SortedDescendingCellStyle BackColor="#EAEAD3" />
            <SortedDescendingHeaderStyle BackColor="#575357" />
        </asp:GridView>

ヘッダーの配置はすべて一緒にプッシュされます。スペースを入れることもできますが、見栄えを良くしたいのですが、何が間違っているのかわかりません。リピーターを使用すると、すべてが見栄えがよくなりますが、それは私にとって選択肢ではありません。割り当てボタンをクリックして、クリックした行とその行の値を取得できるようにする必要があります。

4

1 に答える 1

1

グリッドを間違ってまとめています。すべてのフィールドを単一の列に詰め込むことは言うまでもなく、ヘッダーと各行内に個別のテーブルを定義しています。

<asp:GridView ID="gvMyGrid" runat="server"
    AutoGenerateColumns="False" BackColor="White"
    BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
    ForeColor="Black" GridLines="Vertical">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate>Date</HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="lblTransactionDate" runat="server" Text='<%# String.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(Eval("transactionDate"))) %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>Merchant</HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="lblAcceptLocation" runat="server" Text='<%# Eval("acceptLocation").ToString() %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>Description</HeaderTemplate>
            <ItemTemplate>
                <asp:TextBox ID="tbItemDescription" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>Amount</HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="lblAmount" runat="server" Text='<%# Eval("preAuthAmount") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>Status</HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="lblStatus" runat="server" Text='<%# Eval("transactionStatus") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" Text="Assign +" OnClick="BtnAssign"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <FooterStyle BackColor="#CCCC99" />
    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
    <RowStyle BackColor="#F7F7DE" />
    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
    <sortedascendingcellstyle backcolor="#FBFBF2" />
    <sortedascendingheaderstyle backcolor="#848384" />
    <sorteddescendingcellstyle backcolor="#EAEAD3" />
    <sorteddescendingheaderstyle backcolor="#575357" />
</asp:GridView>
于 2013-10-15T19:01:22.613 に答える