Asp.net 将gridview列显示为行

Asp.net 将gridview列显示为行,asp.net,vb.net,Asp.net,Vb.net,我希望最后一个字段显示为下面的一行,而不是一列 <asp:GridView ID="GridView2" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="opendiarysource" Font-Size="Small" style="font-size: 8pt; border-top-style: solid; bor

我希望最后一个字段显示为下面的一行,而不是一列

 <asp:GridView ID="GridView2" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                               DataSourceID="opendiarysource" Font-Size="Small" style="font-size: 8pt; border-top-style: solid; border-right-style: solid; border-left-style: solid; border-bottom-style: solid; color: black;" AllowSorting="True"  >
                               <Columns>
                                   <asp:TemplateField HeaderText="Date Added" SortExpression="added7">
                                       <EditItemTemplate>
                                           <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("added7") %>'></asp:TextBox>
                                       </EditItemTemplate>
                                       <ItemTemplate>
                                           <br />
                                           <asp:Label ID="Label1" runat="server" Text='<%# Bind("added7") %>'></asp:Label><br />
                                           &nbsp;
                                       </ItemTemplate>
                                   </asp:TemplateField>
                                   <asp:BoundField DataField="ByWhom" HeaderText="Added By" SortExpression="ByWhom" />
                                   <asp:BoundField DataField="BOOKNO" HeaderText="Book #" SortExpression="BOOKNO" />
                                   <asp:BoundField DataField="ClearedBy" HeaderText="Cleared By" SortExpression="ClearedBy" Visible="False" />
                                   <asp:BoundField DataField="Done7" HeaderText="Date Done" SortExpression="Done7" Visible="False" />
                                   <asp:BoundField DataField="ForWhom" HeaderText="For Whom" SortExpression="ForWhom" />

如果您愿意的话,尝试使用ListView而不是GridView。它有很多模板功能。 模板如下所示:

                                   <asp:TemplateField HeaderText="Note" SortExpression="Text">
                                       <EditItemTemplate>
                                           <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Text") %>'></asp:TextBox>
                                       </EditItemTemplate

                                       <ItemTemplate>
                                           <asp:Label ID="Label3" runat="server" Text='<%# Bind("Text") %>'></asp:Label>
                                       </ItemTemplate>
                                   </asp:TemplateField>
                               </Columns>
                           </asp:GridView>

通过这种方式将所有行转换为列

<HeaderTemplate>
            <table>
        </HeaderTemplate>
        <ItemTemplate>

                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>' ></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>' ></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td colspan="10">
                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("Text") %>' ></asp:Label>
                    </td>
                </tr>

        </ItemTemplate>
        <EditItemTemplate>

                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>' ></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>' ></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td colspan="10">
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Text") %>' ></asp:TextBox>
                    </td>
                </tr> 
        </EditItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
公共数据表ConvertColumnsAsRows(数据表dt)
{
DataTable dtnew=新DataTable();

对于(inti=0;i如何使用listview,我使用的是VB2005,但没有控件。net@MyHeadHurts(有趣的名字,顺便说一下:),你可以用DataList代替。
public DataTable ConvertColumnsAsRows(DataTable dt)
{
    DataTable dtnew = new DataTable();

    for (int i = 0; i <= dt.Rows.Count; i++)
    {
        dtnew.Columns.Add(Convert.ToString(i));
    }
    DataRow dr;

    for (int j = 0; j < dt.Columns.Count; j++)
    {
        dr = dtnew.NewRow();
        dr[0] = dt.Columns[j].ToString();
        for (int k = 1; k <= dt.Rows.Count; k++)
            dr[k] = dt.Rows[k - 1][j];
        dtnew.Rows.Add(dr);
    }
    return dtnew;
}