ASP.NET提供了许多种数据服务器控件,用于在Web页面中显示数据库中的表数据,GridView控件就是其中之一。这个控件和我们以前学过的DataGridView控件几乎是一样的,所以对GridView控件我们也并不陌生,下面简单介绍一下它的使用。
前台:
在工具箱中找到GridView控件,并把它拖拽到代码编辑区域。
第一步,进入设计界面,在GridView控件上方有一个向右的黑色小三角,单击这个按钮,选择编辑列,如图:
第二步,去掉自动生成字段前面的勾选,选择根据绑定内容选择BoundField。
第三步,设置标题名称HeaderText和绑定字段名称DaTaField。
第四步,如果要统一设置表单每行的样式,选择将每个字段转化为TemplateField即可。
上面这些步骤设置好后,会自动生成HTML代码。
<div id="newnews" class="commonfrm">
<h4>最新新闻</h4>
<asp:GridView ID="gvNewNews" runat="server" AutoGenerateColumns="False"
BorderWidth="0" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="所属类别" HeaderStyle-CssClass="th_category">
<ItemTemplate>
<a class="td_category" href='list.aspx?caid=<%#Eval("caId") %>'>[<%# Eval("name") %>]</a>
</ItemTemplate>
<HeaderStyle CssClass="th_category"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="新闻标题">
<ItemTemplate>
<a href='newscontent.aspx?newsid=<%#Eval("id") %>' target="_blank" title='<%# Eval("title") %>'><%# StringTruncat( Eval("title").ToString(), 18 , "...") %></a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布时间" HeaderStyle-CssClass="th_time" ItemStyle-CssClass="td_time">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("createtime") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle CssClass="th_time"></HeaderStyle>
<ItemStyle CssClass="td_time"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<!--热点新闻-->
<div id="hotnews" class="commonfrm">
<h4>热点新闻</h4>
<asp:GridView ID="gvHotNews" runat="server" AutoGenerateColumns="False"
BorderWidth="0" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="所属类别" HeaderStyle-CssClass="th_category">
<ItemTemplate>
<a class="td_category" href='list.aspx?caid=<%#Eval("caId") %>'>[<%# Eval("name") %>]</a>
</ItemTemplate>
<HeaderStyle CssClass="th_category"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="新闻标题">
<ItemTemplate>
<a href='newscontent.aspx?newsid=<%#Eval("id") %>' target="_blank" title='<%# Eval("title") %>'><%# StringTruncat( Eval("title").ToString(), 18 , "...") %></a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布时间" HeaderStyle-CssClass="th_time" ItemStyle-CssClass="td_time">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("createtime") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle CssClass="th_time"></HeaderStyle>
<ItemStyle CssClass="td_time"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// 第一次进入该页面时
NewsManager nm = new NewsManager();
// 绑定最新新闻
gvNewNews.DataSource = nm.SelectNewNews();
gvNewNews.DataBind();
// 绑定热点新闻
gvHotNews.DataSource = nm.SelectHotNews();
gvHotNews.DataBind();
}
}比较:
在牛腩新闻发布系统中,还讲到一个绑定数据的控件,叫做Repeater控件,Repeater控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供Repeater控件的布局,需要用ItemTemplate来定义模板。
和Repeater控件相比,GridView控件功能更强大,灵活性更强,能够自定义每行每列的样式,但是有一个不好的缺点就是生成多余代码太多,各有千秋把算是。
ASP.NET——GridView控件绑定数据,布布扣,bubuko.com
原文:http://blog.csdn.net/zjx86320/article/details/38117319