一个Repeater中有好多列,我想实现点击Repeater表头的其中一列或者几列能够按照按照升序或者降序排列,这个功能怎么实现?最好有实例代码。

解决方案 »

  1.   

    http://www.cnblogs.com/vaiyanzi/archive/2007/03/23/685871.html参考
      

  2.   

    实现Repeater控件点击表头排序功能Repeater实现排序功能(双击升序排列,再双击降序排列).原理很简单,在中加个Ondblclick,用它来触发一个LinkButton的服务器事件.LinkButton的服务器事件里重新对数据源进行排序.然后再绑定Repeater.
    要实现,首先需要在HTML里面加个javascript函数和两个Hidden,一个用来储存要排序的字段,还有一个用来储存升序还是降序.(asc/desc)
    Javascript代码如下:
     <script language="javascript">
    function Getsort(obj)
    {
    document.all.sortfield.value=obj;
    if (document.all.sortstring.value == 'ASC')
    {
    document.all.sortstring.value = 'DESC';
    }
    else if (document.all.sortstring.value == 'DESC')
    {
    document.all.sortstring.value = 'ASC';
    }
    __doPostBack('LinkButton1','');
    }
    </script> HTML中:
     <INPUT type="hidden" id="sortfield" runat="server">
    <INPUT type="hidden" id="sortstring" runat="server" value="ASC">
    <td ondblclick="Getsort('Text');"><b>双击此处可排序</b></td> 
     private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    CreaterDataSource("Text ASC");
    }
    }
     
    private void CreaterDataSource(string sort)
    {
    OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb")); 
    dbCon.Open();
    OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Table", dbCon); 
     
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    DataView dv = dt.DefaultView;
    dv.Sort = sort;
    Repeater1.DataSource=dv;
    Repeater1.DataBind();
    }
     
    private void LinkButton1_Click(object sender, System.EventArgs e)
    {
    string sortString = Request.Form["sortstring"].ToString();
    string sortfield = Request.Form["sortfield"].ToString();
    string fullsortstring = sortfield+" "+sortString;
    if (fullsortstring != ""&& fullsortstring!=null)
    {
    CreaterDataSource(fullsortstring);
    }
      

  3.   

    这个需要重新绑定数据源,类似于页面中列表筛选。表头用js加上onclick事件。 然后用from表单提交,重新绑定数据源。
      

  4.   

    晕,很简单的,只在上放一个linkbutton就行了,因为linkbutton有一个属性是Command,只要你点一下,你就将是desc还是asc的值放到里面,不就行了