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控件功能更强大,灵活性更强,能够自定义每行每列的样式,但是有一个不好的缺点就是生成多余代码太多,各有千秋把算是。

        

       

ASP.NET——GridView控件绑定数据,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。