我在页面的后台写代码都调试到最后都是降序的,可为什么一绑定到页面上就变成了乱序

解决方案 »

  1.   

    后台代码private void tuixuan()
            {
                MyWeb.BLL.Product pro = new MyWeb.BLL.Product();
                reptuixuan.DataSource = pro.GetListByFields(8, "*", "ProType='tuixuanchanpin'order by ProPublishTime desc,ProId desc");
                reptuixuan.DataBind();
            }前台<asp:Repeater ID="repmiaosha" runat="server">
    <ItemTemplate>
    <li><a href="shipinstype.aspx?id=<%# Eval("ProId")%>"><span class="shang19"><img src="<%#Eval("ProSmallImg") %>" width="172" height="170" /></span>
          名称:<%#MyWeb.Common.CheckChar.CutStr(Eval("ProName").ToString(),8)+"..."%><br />
          产地:<%#Eval("Chandi")%><br />
          <span class="c_cp_span1">¥<%#Eval("ProNetPrice")%></span> <span class="c_cp_span">¥<%#Eval("PromemberPrice")%></span>
      </a>
      
      </li>
    </ItemTemplate>
    </asp:Repeater>
      

  2.   

    ProType='tuixuanchanpin'order by ProPublishTime desc and ProId desc
    试试
      

  3.   

    ProType='tuixuanchanpin'order by ProPublishTime desc and ProId descProPublishTime desc
    ProId desc这俩你看着删掉一个吧
      

  4.   

    <%@ Page language="c#" Codebehind="RepeaterOrderForm.aspx.cs" AutoEventWireup="false" Inherits="RepeaterOrder.RepeaterOrderForm" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
        <HEAD>
            <title>RepeaterOrderForm</title>
            <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        </HEAD>
        <body MS_POSITIONING="GridLayout">
            <form id="Form1" method="post" runat="server">
                <table border=1 bordercolor=#330033 bordercolordark=#999933 bordercolorlight=black>
                <tr>
                <td colspan=5 align=center><font color=blue size=12>Repeater实现双向排序功能</font></td>
                </tr>
                    <asp:Repeater id="rpOrder" runat="server">
                        <HeaderTemplate>
                            <tr align=center >
                                <td>
                                    <asp:LinkButton ID="LastName" Runat="server" text="LastName" CommandName="LastName"></asp:LinkButton></td>
                                <td>
                                    <asp:LinkButton ID="FirstName" Runat="server" text="FirstName" CommandName="FirstName"></asp:LinkButton></td>
                                <td>
                                    <asp:LinkButton ID="Title" Runat="server" text="Title" CommandName="Title"></asp:LinkButton></td>
                                <td>
                                    <asp:LinkButton ID="Address" Runat="server" text="Address" CommandName="Address"></asp:LinkButton></td>
                                <td>
                                    <asp:LinkButton ID="City" Runat="server" text="City" CommandName="City"></asp:LinkButton></td>
                                
                            </tr>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr>
                                <td><%# DataBinder.Eval(Container.DataItem,"LastName")%></td>
                                <td><%# DataBinder.Eval(Container.DataItem,"FirstName")%></td>
                                <td><%# DataBinder.Eval(Container.DataItem,"Title")%></td>
                                <td><%# DataBinder.Eval(Container.DataItem,"Address")%></td>
                                <td><%# DataBinder.Eval(Container.DataItem,"City")%></td>                            
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </table>
            </form>
        </body>
    </HTML>using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Configuration;namespace RepeaterOrder
    {
        /**/
        /// <summary>
        /// RepeaterOrderForm 的摘要说明。
        /// </summary>
        public class RepeaterOrderForm : System.Web.UI.Page
        {
            protected System.Web.UI.WebControls.Repeater rpOrder;
            private readonly string CONNECTIONSTRING = ConfigurationSettings.AppSettings["ConnectionString"];
            private void Page_Load(object sender, System.EventArgs e)
            {
                if (!IsPostBack)
                {
                    BindRepeater();
                }
            }
            private DataView GetData
            {
                get
                {
                    return Cache["_data"] as DataView;
                }
                set
                {
                    if (Cache["_data"] == null)
                        Cache["_data"] = value;
                }
            }
            //Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                //
                InitializeComponent();
                base.OnInit(e);
            }        /**/
            /// <summary>
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            /// 此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.Load += new System.EventHandler(this.Page_Load);
                this.rpOrder.ItemCommand += new RepeaterCommandEventHandler(rpOrder_ItemCommand);
                this.rpOrder.ItemDataBound += new RepeaterItemEventHandler(rpOrder_ItemDataBound);        }
            private SqlConnection Conn()
            {
                return new SqlConnection(CONNECTIONSTRING);
            }        private void BindRepeater()
            {
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter("Select * From Employees", Conn());
                da.Fill(ds);
                GetData = ds.Tables[0].DefaultView;
                rpOrder.DataSource = ds.Tables[0];
                rpOrder.DataBind();
            }        private void rpOrder_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();
                    DataView dv = GetData;
                    dv.Sort = e.CommandName.ToString().Trim() + " " + ViewState[e.CommandName.Trim()].ToString().Trim();
                    rpOrder.DataSource = dv;
                    rpOrder.DataBind();
                }
            }        private void rpOrder_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();
                    }
                }
            }
        }
    }
      

  5.   

    谢谢子夜大哥了,我找到问题了,    TOP 不能和 排序进行一起用,  TOP和排序一起用 排序就失效