• 实现Repeater控件点击表头排序功能


      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">
    <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方法的参数一定要设置为你想排序的字段名称.这样你就可以实现双击不同的列头进行当前列的排序功能.
    整个实现的重点在设置DataView的sort属性,LinkButton1_Click事件中获取当前排序的字段和排序顺序的String,然后传给CreaterDataSource方法.此方法根据传来的参数将DataView的Sort重新设置,然后绑定Repeater控件.OK!
  • 相关阅读:
    11gR2 RAC vip和network资源的依赖性与频繁failover
    Unix上如何查看文件名开头为"+asm"的TRACE文件
    Oracle Partitioning分区技术历年新特性回顾
    Script:列出本会话的细节信息
    UtilSession failed: Prerequisite check "CheckSystemSpace" space(22288172004) is not available
    Oracle中比对2张表之间数据是否一致的几种方法
    [转]asp.net导出Excel/Csv格式数据最优方案(C#)
    C#获取存储过程返回值和输出参数值
    oracle 存储过程的基本语法
    C#调用存储过程的几个方法
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/843466.html
Copyright © 2020-2023  润新知