我是asp.net的新手,目前在网格表方面遇到了麻烦。
我有一个名为BlogTitle
,BlogText
和BlogDate
的数据库中的表列,这是当前的结果:
现在我想要的是将它们全部收集到一个没有标题标题的列中所以我可以设置它们的样式:更像是这样:
正如您所看到的,它现在将所有数据组织成一行,每行都没有标题标题。
当前代码:
<asp:GridView ID="datafile" CssClass="datafileid" runat="server" >
</asp:GridView>
服务器端:
var data = (from o in quack.Blogs select new { o.BlogTitle, o.BlogText ,o.BlogDate}).ToList();
this.datafile.DataSource = data;
this.datafile.DataBind();
如何使用gridView指定仅使用一列,但使用为每行传递的所有数据。
答案 0 :(得分:3)
使用Repeater
控件..它可以帮助您在单列中显示输出。
谢谢!
答案 1 :(得分:2)
使用asp:repeater,在其项目模板中,您可以定义满足UI需求的div。
答案 2 :(得分:1)
您绝对可以绑定Gridview
中的一列。在aspx中,您只需要将一列指定为绑定字段,选择后面代码中的列,然后绑定到网格。示例代码将是这样的。
假设:BlogTitle
将是您需要的一列。
ASPX
<asp:GridView ID="datafile" CssClass="datafileid" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="BlogTitle" HeaderText="BlogTitle" />
</Columns>
</asp:GridView>
代码背后
var data = (from o in quack.Blogs select new { BlogTitle = o.BlogTitle,BlogText = o.BlogText,BlogDate= o.BlogDate }).ToList();
this.datafile.DataSource = data;
this.datafile.DataBind();
答案 3 :(得分:1)
请使用datalist控件。 您可以根据自己的要求进行设计。
答案 4 :(得分:1)
您应该使用TemplateField
中的GridView
并关闭AutoGenerateColumns
。像这样:
<asp:GridView ID="blogGrid" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Blog post">
<ItemTemplate>
<asp:Literal ID="BlogTitle" runat="server" Text='<%# Bind("BlogTitle") %>'></asp:Literal>
<br />
<asp:Literal ID="BlogText" runat="server" Text='<%# Bind("BlogText") %>'></asp:Literal>
<br />
<asp:Literal ID="BlogDate" runat="server" Text='<%# Bind("BlogDate") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>