GridView不是有个排序的吗,我没怎么用过,就是我想问下,启用排序后,点击那个标题按某个字段的大小排序,但是第一次是按从小到大排的,第二次才是从大到小排,我想让它第一次从大到小排,第二次从小到大排,怎么办?

解决方案 »

  1.   

    初始设定,或者完全自己绑定
    http://www.cnblogs.com/couhujia/archive/2009/09/26/1574617.html
    这里有一篇自己绑定的文章
      

  2.   

    GRIDVIEW 有一个Sort相关的事件,里面有个参数,如果是升序,你改为降序,如果是降序,你改为升序,就实现了啊
      

  3.   

    不好意思,刚学.net,不会用,没用过
      

  4.   

    前台:<Columns>
                                 
                                    <asp:BoundField DataField="CID" HeaderText="用户ID" SortExpression="CID"/>                             
                                    <asp:BoundField DataField="Name" HeaderText="用户姓名" SortExpression="Name"/>
                                    <asp:BoundField DataField="Sex" HeaderText="性别"  SortExpression="Sex"/>
                                    <asp:BoundField DataField="Address" HeaderText="家庭住址" SortExpression="Address" />
                                    <asp:BoundField DataField="Post" HeaderText="邮政编码"  SortExpression="Post"/>
                                </Columns>
      

  5.   

     protected void Page_Load(object sender, EventArgs e)
            {
                if (!this.IsPostBack)
                {
                    ViewState["SortOrder"] = "name"; //设定排序字段
                    ViewState["OrderDire"] = "desc"; //降序排列
                    GvBind();  //绑定gridview            
                }
            }
     public void GvBind()
            {
                string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
                DataView view = Tables[0].DefaultView; //这里的table是查询结果
                view.Sort = sort;           
                gridview.DataSource = view;
                gridview.DataBind();        }protected void gridview_Sorting(object sender, GridViewSortEventArgs e)
            {
                string sPage = e.SortExpression;
                if (ViewState["SortOrder"].ToString() == sPage)
                {
                    if (ViewState["OrderDire"].ToString() == "Desc")
                        ViewState["OrderDire"] = "ASC";
                    else
                        ViewState["OrderDire"] = "Desc";
                }
                else
                {
                    ViewState["SortOrder"] = e.SortExpression;
                }
                GvBind();
            }
      

  6.   

    后台:   //绑定GridView
        public void bind()
        {
            string sortExpression = this.GridView1.Attributes["SortExpression"];
            string sortDirection = this.GridView1.Attributes["SortDirection"];        string sqlstr = "select  * from Admin";
            sqlcon = new SqlConnection(strCon);
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "Admin");
            DataView dv = myds.Tables[0].DefaultView;
            string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
            dv.Sort = sort;        GridView1.DataSource = myds;
            GridView1.DataBind();
        }
        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sPage = e.SortExpression;
             if (ViewState["SortOrder"].ToString() == sPage)
             {
                if (ViewState["OrderDire"].ToString() == "Desc")
                    ViewState["OrderDire"] = "ASC";
                else
                     ViewState["OrderDire"] = "Desc";
             }
             else
             {
                 ViewState["SortOrder"] = e.SortExpression;
             }
             bind();    }
      

  7.   

    asc,desc的大小写自己注意7楼里面写的没统一
      

  8.   

    招募.net爱好者 QQ群:84493831
      

  9.   

    数据控件真难用  不剩 直接循环 table 
      

  10.   

    你直接用个SQL排序语句,排序一下再绑定吗!!!