Asp.net中DataList及Repeat使用(7)

 

以上是对GridView,DataList及Repeater使用的一些建议。

1. DataList使用。

DataList的一些总结:

还有一些重要属性如:

DataList事件如:

以下案例:

前台代码块:

 <asp:DataList ID="dlBooks" runat="server">
            <ItemTemplate>
                <table id="tbBooks" class="list_area">
                    <tr>
                        <td rowspan="2" class="td_left">
                            <a href="BookDetail.aspx?bid=<%# Eval("Id")%>">
                                <img alt="" src="<%# GetUrl(Eval("ISBN").ToString()) %>" />
                            </a>
                        </td>
                        <td class="td_right">
                            <a href="BookDetail.aspx?bid=<%# Eval("Id")%>" name="link_prd_name" target="_blank"
                                class="b_title" id="link_prd_name">
                                <%# Eval("Title") %></a>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <span>
                                <%# Eval("Author") %></span><br />
                            <span>
                                <%# Eval("PublishDate","{0:D}") %></span><br />
                            <span>
                                <%# StringUtility.CutString(Eval("ContentDescription"), 150)%></span>
                        </td>
                    </tr>
                    <tr>
                        <td align="right" colspan="2">
                            价格: <span class="red">
                                <%# Eval("UnitPrice","{0:C}")%></span>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
            <SeparatorTemplate>
            </SeparatorTemplate>
        </asp:DataList>


后台代码块:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //首次加载,赋初值
            ViewState["PageIndex"] = 1;  //默认为第一页
            if (Request.QueryString["typeid"] != null)
                ViewState["CategoryId"] = Convert.ToInt32(Request.QueryString["typeid"]);
            else
                ViewState["CategoryId"] = 1;//默认C#类别           
            //更换类别时,需要重新计算页码
            AnpBook.RecordCount = bookManager.GetBookCountByCategory(Convert.ToInt32(ViewState["CategoryId"]));
        }
        DataBind();
    }

    private void DataBind()
    {

        List<Book> list = bookManager.GetBooks((int)ViewState["CategoryId"], ViewState["OrderField"].ToString(), ViewState["Order"].ToString(), 5, (int)ViewState["PageIndex"]);
        if (list.Count == 0)
            Response.Redirect("~/Default.aspx");
        
        this.dlBooks.DataSource = list;
        this.dlBooks.DataBind();
        
    }

    protected void AnpBook_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
    {
        ViewState["PageIndex"] = e.NewPageIndex;
        DataBind();
    }

    /// <summary>
    /// 获得封面的url
    /// </summary>
    /// <param name="isbn"></param>
    /// <returns></returns>
    public string GetUrl(string isbn)
    {
        return "Images/BookCovers/" + isbn.ToString() + ".jpg";
    }


GridView,DataList和Repeater三个的比较

 

 

posted @ 2012-08-16 22:13  Mr.邹  阅读(559)  评论(0)    收藏  举报