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 />
</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;
}