asp.net GridView,在一列中的多行中显示多个列
假设asp.net网格视图中有8列。col1,col2,col3,col4,col5,col6,…我希望他们这样安排:asp.net GridView,在一列中的多行中显示多个列,asp.net,gridview,datagrid,Asp.net,Gridview,Datagrid,假设asp.net网格视图中有8列。col1,col2,col3,col4,col5,col6,…我希望他们这样安排: ----------------------------- col_one | col_two | col_three ----------------------------- col1 col4 col6 col2 col5 col7 col3 ----------------------------- 我怎
-----------------------------
col_one | col_two | col_three
-----------------------------
col1 col4 col6
col2 col5 col7
col3
-----------------------------
我怎么能这么做
我在谷歌上搜索到一篇文章,它在一列中排列了几列,但没有将排列的列放在不同的行中
我可以在这里发布什么代码。。我只是在找路
如何做到这一点
我应该切换到datagrid吗?为什么?您应该使用
TemplateField
,然后根据需要为特定模式设置模板,如下所示:
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Id" DataSourceID="ObjectDataSource1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="col_one">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>'></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>'></asp:Label><br />
<asp:Label ID="Label3" runat="server" Text='<%# Eval("col3") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="col_two">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("col4") %>'></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text='<%# Eval("col5") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="col_three">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("col6") %>'></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text='<%# Eval("col7") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetItems" TypeName="WebTester.DataGridTester">
</asp:ObjectDataSource>
这是我得到的错误:
System.Web.UI.WebControls.DataGridColumnCollection必须具有“System.Web.UI.WebControls.DataGridColumn”类型的项asp:TemplateField的类型为System.Web.UI.WebControl.TemplateField。
我已经为您准备了一个完整的工作示例。首先将名为“DataGridTester.aspx”的新页面添加到您的项目中,并将代码粘贴到上面。
public static DataTable GetItems()
{
//generate some demo data...
DataTable dt = new DataTable();
dt.Columns.Add("Id",typeof(int));
dt.Columns.Add("col1", typeof(string));
dt.Columns.Add("col2", typeof(string));
dt.Columns.Add("col3", typeof(string));
dt.Columns.Add("col4", typeof(string));
dt.Columns.Add("col5", typeof(string));
dt.Columns.Add("col6", typeof(string));
dt.Columns.Add("col7", typeof(string));
dt.Rows.Add(new object[] {1,"some","data","in","first","row", ".", ".." });
dt.Rows.Add(new object[] { 2, "second", "record", "inside", "demo", "datatable", "-", "--" });
return dt;
}