ASP.NET——GridView控件绑定数据
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控件功能更强大,灵活性更强,能够自定义每行每列的样式,但是有一个不好的缺点就是生成多余代码太多,各有千秋把算是。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。