| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2082 人关注过本帖
标题:表头排序问题
只看楼主 加入收藏
丁春秋yxp
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:251
专家分:310
注 册:2017-10-31
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:12 
表头排序问题
本站大神的这个点击表头排序确实强悍,值得学习:https://bbs.bccn.net/viewthread.php?tid=245879&highlight=%B1%ED%CD%B7%C5%C5%D0%F2

但发现一个问题:这方法只对自由表排序有效,对数据库中的表排序不起作用。还向大神们请教如何修正,让其对数据库中的表也起作用。


搜索更多相关主题的帖子: 表头 php 排序 net 数据库 
2022-03-30 09:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:20 
表排序通常是创建索引文件
2022-03-30 11:26
丁春秋yxp
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:251
专家分:310
注 册:2017-10-31
收藏
得分:0 
回复 2楼 吹水佬
能请版主指导一下吗,最好是在原程序上修改。
2022-03-30 22:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
回复 3楼 丁春秋yxp
你的原程序在哪

坚守VFP最后的阵地
2022-03-30 23:12
shenlancwz
Rank: 2
等 级:论坛游民
威 望:3
帖 子:52
专家分:70
注 册:2018-11-7
收藏
得分:0 
我用VFP做的不仅能点击列标题排序,并且还可以筛选
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-04-10 10:39
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2232
专家分:3913
注 册:2007-4-27
收藏
得分:0 
以下是引用shenlancwz在2022-4-10 10:39:23的发言:

我用VFP做的不仅能点击列标题排序,并且还可以筛选



能把你的代码共享吗? 期待.........

只求每天有一丁点儿的进步就可以了
2022-04-10 11:25
ljlhpop
Rank: 2
等 级:论坛游民
帖 子:151
专家分:49
注 册:2015-10-11
收藏
得分:0 
回复 楼主 丁春秋yxp
研究了半天,,搞不懂附件里面的表数据是在哪里? 没看到自由表
2022-04-10 15:08
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1790
专家分:3389
注 册:2012-2-29
收藏
得分:0 
回复 7楼 ljlhpop
程序代码:
*** demo.prg
PUBLIC oform1

SET PROCEDURE TO myclass.prg ADDITIVE

oform1=Newobject("frmDemo")
oform1.Show
RETURN

DEFINE CLASS frmDemo AS form
    Height = 352
    Width = 529
    DoCreate = .T.
    AutoCenter = .T.
    Caption = "Demo"
    Name = "frmDemo"

    ADD OBJECT Grd1 AS grd WITH ;
        DeleteMark = .F.,;
        Height = 336,;
        Left = 7,;
        Top = 9,;
        Width = 516,;
        Name = "Grd1"

    PROCEDURE Load
        set safety off
        Create Cursor Demo(编码 C(10),名称 C(20),价格 N(12,2),日期 D)
        Insert Into Demo(编码,名称,价格,日期) Values ("0001","华硕 F9S F9G233S-SL",7399,Date())
        Insert Into Demo(编码,名称,价格,日期) Values ("0002","戴尔 Vostro 1310(R520555)",6100,Date())
        Insert Into Demo(编码,名称,价格,日期) Values ("0003","Gateway T-6818c",5999,Date())
        Insert Into Demo(编码,名称,价格,日期) Values ("0004","海尔 S20-T2370G10160BgHQCFP",5999,Date())
        Insert Into Demo(编码,名称,价格,日期) Values ("0005","ThinkPad R61i 774227C",6400,Date())
        Insert Into Demo(编码,名称,价格,日期) Values ("0006","惠普 Compaq Presario V3803TX(KS396PA)",5700,Date())
        Go Top
    ENDPROC

    PROCEDURE Init
        This.grd1.Bind()
    ENDPROC
ENDDEFINE



程序代码:
*** myclass.prg
DEFINE CLASS grd AS grid
    Height = 200
    Width = 320
    issort = .T.
    sortgrc = ""
    Name = "grd"

    PROCEDURE grhclick
        If This.isSort = .F.
           Return
        Endif
        Local Array laEvents[1]
        Try
           Private lcSourceAlias,lcControlSource,lcField,lcTag,Ftag,lnBuffer,lcSortGrc
           Local lcSourceAlias,lcControlSource,lcField,lcTag,Ftag,lnBuffer,lcSortGrc
           Aevents(laEvents,0)    
           lcSourceAlias = laEvents[1,1].Parent.Parent.RecordSource
           lcControlSource = laEvents[1,1].Parent.ControlSource
           lcSourceAlias = Iif(!Empty(lcSourceAlias),lcSourceAlias,Substr(lcControlSource,1,At(".",lcControlSource)-1))
           lcSourceAlias = Iif(!Empty(lcSourceAlias),lcSourceAlias,Alias())
           lcField = Substr(lcControlSource,At(".",lcControlSource)+1)
           *--
           If Empty(lcSourceAlias)
              Return
           Endif
           If Empty(lcField)
              Return
           Endif
        
           lcTag = "SortTag"
           Ftag = This.GetFieldTag(lcSourceAlias,lcField)
           Select (lcSourceAlias)
           *--
           lnBuffer = CursorGetProp("Buffering")
           If lnBuffer > 3
              CursorSetProp("Buffering" ,3)
           Endif
           *--
           lcSortGrc = This.SortGrc
           If !Empty(This.SortGrc)
              This.&lcSortGrc..Header1.Picture=""
           Endif
           This.SortGrc= laEvents[1,1].Parent.Name
           
           Select(lcSourceAlias)
           If Empty(Ftag)
              If laEvents[1,1].Tag = "Down"
                 Inde On &lcField Tag &lcTag Descending
                 laEvents[1,1].Picture = Iif(File("Down.bmp"),"Down.bmp","")
                 laEvents[1,1].Tag = "Up"
              Else
                 Inde On &lcField Tag &lcTag Ascending
                 laEvents[1,1].Picture = Iif(File("Up.bmp"),"Up.bmp","")
                 laEvents[1,1].Tag = "Down"
              Endif
           Else
              If laEvents[1,1].Tag = "Down"
                 Set Order To (Ftag) Descending
                 laEvents[1,1].Picture = Iif(File("Down.bmp"),"Down.bmp","")
                 laEvents[1,1].Tag = "Up"
              Else
                 Set Order To (Ftag) Ascending
                 laEvents[1,1].Picture = Iif(File("Up.bmp"),"Up.bmp","")
                 laEvents[1,1].Tag = "Down"
              Endif
           Endif
           If lnBuffer > 3
              CursorSetProp("Buffering" ,lnBuffer)
           Endif
           Go Top
           This.Refresh
        Catch
        Endtry
    ENDPROC
        
    PROCEDURE bind
        Unbindevents(This)
        This.SetAll("MousePointer",1,"Header")
        For Each oControl In This.Columns
           Bindevent(oControl.Controls(1),"Click",This,"grhClick")
        Endfor
    ENDPROC
        
    PROCEDURE getfieldtag
        Lparameter tcAlias,tcField
        Local lnTags,lnI,lcKey,lcTag
        lcTag = ""
        If Used(tcAlias)
           lnTags = Tagcount("",tcAlias)
           For lnI = 1 To lnTags
              lcKey = Key("",lnI,tcAlias)
              If Upper(Alltrim(lcKey)) = Upper(Alltrim(tcField))
                 lcTag = Upper(Tag("",lnI,tcAlias))
                 Exit
              Endif
           Endfor
        Endif
        Return lcTag
    ENDPROC
ENDDEFINE
demo.rar (2.09 KB)


[此贴子已经被作者于2022-4-12 20:16编辑过]

2022-04-10 20:17
shenlancwz
Rank: 2
等 级:论坛游民
威 望:3
帖 子:52
专家分:70
注 册:2018-11-7
收藏
得分:0 
再补充一张表头筛选的示例
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-04-11 15:34
ljlhpop
Rank: 2
等 级:论坛游民
帖 子:151
专家分:49
注 册:2015-10-11
收藏
得分:0 
回复 8楼 schtg
图片附件: 游客没有浏览图片的权限,请 登录注册

都是有提示。。
2022-04-12 17:20
快速回复:表头排序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021597 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved