repeater 排序

本文介绍了如何在ASP.NET Web应用程序中使用Repeater控件结合JavaScript实现表格数据的排序功能。通过在HTML中设置ondblclick事件触发JavaScript函数,动态更新LinkButton状态并调用后台方法重新排序数据源,最终刷新Repeater显示排序后的数据。此方法实现了双击列头可切换升序和降序排序的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 repeater实现排序功能(双击升序排列,再双击降序排列).原理很简单,在<TD>中加个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">

 <asp:LinkButton ID="LinkButton1" runat="server" visable="false">LinkButton</asp:LinkButton>

 

<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);

    }

}

 

 

上面主要列举了排序功能实现的代码.在HTML中的ondblclick中,您可以给Getsort方法不同的参数以获得对不同的字段进行排序,注意, Getsort方法的参数一定要设置为你想排序的字段名称.这样你就可以实现双击不同的列头进行当前列的排序功能.

 整个实现的重点在设置 Repeater的sort属性,LinkButton1_Click事件中获取当前排序的字段和排序顺序的String,然后传给 CreaterDataSource方法.此方法根据传来的参数将DataView的Sort重新设置,然后绑定Repeater控件.OK!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值