现在的位置: 首页 > 综合 > 正文

Repeater排序

2012年12月08日 ⁄ 综合 ⁄ 共 2202字 ⁄ 字号 评论关闭
  1. repeater
    <asp:Repeater ID="rptGroups" runat="server" OnItemDataBound="rptGroups_ItemDataBound" OnItemCommand="rptGroups_ItemCommand">
  2. rd
    <td>
                                    <asp:LinkButton ID="lbname" Runat="server" text="名称" CommandName="lbname"></asp:LinkButton>
                                </td>
                                <td>
                                    <asp:LinkButton ID="lbdate" Runat="server" text="时间" CommandName="lbdate"></asp:LinkButton>
                                </td>
                                <td>
                                    <asp:LinkButton ID="lbdays" Runat="server" text="天数" CommandName="lbdays"></asp:LinkButton>
                                </td>
  3. ItemDataBound
        protected void rptGroups_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header)
            {
                if (ViewState["id"] != null)
                {
                    LinkButton lkbtnSort = (LinkButton)e.Item.FindControl(ViewState["id"].ToString().Trim());
                    lkbtnSort.Text = ViewState["text"].ToString();
                }
            }
        }
  4. ItemCommand
        protected void rptGroups_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header)
            {
                LinkButton lkbtnSort = (LinkButton)e.Item.FindControl(e.CommandName.Trim());
                if (ViewState[e.CommandName.Trim()] == null)
                {
                    ViewState[e.CommandName.Trim()] = "ASC";
                    lkbtnSort.Text = lkbtnSort.Text + "↑";
                }
                else
                {
                    if (ViewState[e.CommandName.Trim()].ToString().Trim() == "ASC")
                    {
                        ViewState[e.CommandName.Trim()] = "DESC";
                        if (lkbtnSort.Text.IndexOf("↑") != -1)
                            lkbtnSort.Text = lkbtnSort.Text.Replace("↑", "↓");
                        else
                            lkbtnSort.Text = lkbtnSort.Text + "↓";
                    }
                    else
                    {
                        ViewState[e.CommandName.Trim()] = "ASC";
                        if (lkbtnSort.Text.IndexOf("↓") != -1)
                            lkbtnSort.Text = lkbtnSort.Text.Trim().Replace("↓", "↑");
                        else
                            lkbtnSort.Text = lkbtnSort.Text + "↑";
                    }
                }
                ViewState["text"] = lkbtnSort.Text;
                ViewState["id"] = e.CommandName.Trim();
                IList<Model.DJ_TourGroup> tglist = (IList<Model.DJ_TourGroup>)rptGroups.DataSource;
                switch (e.CommandName.Trim())
                {
                    case "lbname":
                        if (ViewState[e.CommandName.Trim()].ToString().Trim() == "ASC")
                            tglist = tglist.OrderBy(x => x.Name).ToList();
                        else
                            tglist = tglist.OrderByDescending(x => x.Name).ToList();
                        break;
                    case "lbdate":
                        if (ViewState[e.CommandName.Trim()].ToString().Trim() == "ASC")
                            tglist = tglist.OrderBy(x => x.BeginDate).ToList();
                        else
                            tglist = tglist.OrderByDescending(x => x.BeginDate).ToList();
                        break;
                    case "lbdays":
                        if (ViewState[e.CommandName.Trim()].ToString().Trim() == "ASC")
                            tglist = tglist.OrderBy(x => x.DaysAmount).ToList();
                        else
                            tglist = tglist.OrderByDescending(x => x.DaysAmount).ToList();
                        break;
                }
                rptGroups.DataSource = tglist;
                rptGroups.DataBind();
            }
        }

抱歉!评论已关闭.