我想把datagrid中某一列加个上下箭头,以实现按这一列的正反排序(就像资源管理器一样),怎样实现?

解决方案 »

  1.   

    模板列msdn上有一个讲座,有一节专门是DataGrid的,里面说了怎么整,下载了看一下吧
      

  2.   

    以下代码添加到 ItemCreated中if(e.Item.ItemType==ListItemType.Header)
    {
       string strSortBy=(string)ViewState["SortExpression"];     //进行排序的列
       string strSortAscending=(string)ViewState["SortAscending"];  //是升序还是降序
       string strOrder=(strSortAscending=="yes"?"5":"6");      //设置升序或降序显示的符号   for(int i=0;DataGrid1.Columns.Count;i++)
       {
          if(strSortBy==DataGrid1.Columns[i].SortExpression);
          {
             TableCell cell=e.Item.Cells[i];
             Label lblSorted=new Label();
             lblSorted.Font.Name="webdings";
             lblSorted.fon.Size=FontUnit.XSmall;
             lblSorted.Text=strOrder;
             cell.Controls.Add(lblSorted);
          }
       }
    }要标识的列是其 SortExpression 与当前排序表达式匹配的列.找到这个列后,创建一个新的标签控件,将它的字体设为Webdings,选择字体大小和文本(一般是第5个和第6个),最近将标签添加到加载有列村题的单元格中.
      

  3.   

    Header模板列 内加两个ImageButton 设置命令名,并在ItemCommand事件内处理
      

  4.   

    双向排序的话
    这种方法不错
    http://tech.ccidnet.com/art/1081/20060110/411355_1.html加箭头的话,做两个图片
    然后在当前选择的排序列的listtype.header里
    xxxx.controls.add(img);
      

  5.   

    http://aspnet.4guysfromrolla.com/articles/061505-1.aspx
      

  6.   

    public string PicUrl(string dt)
    {
    .....
                                if()
                                {...}
                                else
                                {...}
                               return url;
    }模板列
    <asp:Image id=Image1 runat="server" ImageUrl='<%# PicUrl(((DataRowView)Container.DataItem)["id"].ToString())%>'></asp:Image>这里将文章的ID传到.CS文件中的PicUrl()方法,有PicUrl判断返回什么样的值。如果是上升就返回上升的图片路径
      

  7.   

    http://singlepine.cnblogs.com/archive/2006/01/26/323386.html