GridView 中如何实现点击列头排序,有代码更好!小弟感激不尽!

解决方案 »

  1.   

    貌似GridView有个属性AllowSorting就行
      

  2.   

    1.
    升序列头绑定:XXX栏位 + "↑"
    降序列头绑定:XXX栏位 + "↓"2.AllowSorting =True
      

  3.   

    在GirdView1单击事件里写
    要先写上
    e.rowindex>0 && e.cellindex(culoumn)>0 防止系统宕机
    然后
    GirdView1.Columns["列名"].HeaderText = "列v";
    .HeaderText 这个方法就是改显示的名字的
      

  4.   

    各位大虾请看代码
    static string orderby = string.Empty;
        static string desc = string.Empty;
        protected void gvBarcodeInfo_Sorting(object sender, GridViewSortEventArgs e)
        {
            for (int i = 0; i < gvBarcodeInfo.Columns.Count; i++)
            {
                gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText.Replace(" ^", "");
                gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText.Replace(" v", "");
            }        orderby = " order by " + e.SortExpression;
            if (desc == string.Empty)
            {
                desc = " desc ";
                for (int i = 0; i < gvBarcodeInfo.Columns.Count; i++)
                {
                    gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText + " v";
                }
            }
            else
            {
                desc = string.Empty;
                for (int i = 0; i < gvBarcodeInfo.Columns.Count; i++)
                {
                    gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText + " ^";
                }
            }
            orderby += desc;
            string where = getWhere(txtBarcode.Text);
            getData(where, orderby);
        }当我点击一列时,所有的列后面都加了  我只需要我点击的那一列加标示。
      

  5.   

    "  for (int i = 0; i < gvBarcodeInfo.Columns.Count; i++)
      {
      gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText.Replace(" ^", "");
      gvBarcodeInfo.Columns[i].HeaderText = gvBarcodeInfo.Columns[i].HeaderText.Replace(" v", "");
      }"这段代码就是造成所有列都加上标记的原因.去 GridViewSortEventArgs e 中取当前发起这个sorting事件的特定列.
      

  6.   

    GirdView1.Columns[e.CellIndex].HeaderText = "列v";
    不就好了吗
      

  7.   

    而且你还是循环所有的列去给他加v的
    不要循环  直接写
    GirdView1.Columns[e.CellIndex].HeaderText = "列v";
      

  8.   

    dataGridView不是自动就给你加箭头了吗?