祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 5756|回复: 9

treeview的问题

[复制链接]

treeview的问题

[复制链接]
wlj78

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-27 20:23:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
把权限列表的数据按一定规律组合后显示到treeview中没问题,但如何根据treeview中checked属性或其它方法保存到数据库中。
不要例程,只需要思路和核心代码。谢谢了!
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
wlj78 楼主

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-28 22:26:22 | 显示全部楼层
哥,回一个
共享共进共赢Sharing And Win-win Results
wlj78 楼主

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-30 21:07:39 | 显示全部楼层
已解决了!
共享共进共赢Sharing And Win-win Results
ehxz

主题

0

回帖

57万

积分

管理员

积分
570784
贡献
在线时间
小时
2011-10-30 22:22:25 | 显示全部楼层
论坛人气太差了,要好好整整了。{:lh_25:}
共享共进共赢Sharing And Win-win Results
wlj78 楼主

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-31 20:43:05 | 显示全部楼层
一、生成treeview
C# code
this.setredraw( false)
nvo_datastore mydtx,mydtx2
nvo_loginqx myqx
datastore mydt,mydt2
long tvlever1,tvlever2

mydt = mydtx.f_getdatastore( "select menuname,menutext from menuright where len(menuname) = 3" )
mydt.settransobject(sqlca)
mydt.retrieve( )
int i,m
treeviewitem tvitem,tvitem2
for i = 1 to mydt.rowcount( )
    tvitem.label = mydt.getitemstring(i,"menutext")
    tvitem.data = mydt.getitemstring(i,"menuname")
    tvitem.statepictureindex = 2
    tvlever1 = this.insertitemlast( 0,tvitem)
   
    mydt2 = mydtx.f_getdatastore( "select menutext,menutag from menuright where len(menuname)>3 and left(menuname,3) ='"+ tvitem.data+"'")
    mydt2.settransobject(sqlca)
    mydt2.retrieve( )
    for m = 1 to mydt2.rowcount()
        tvitem2.label = mydt2.getitemstring(m,"menutext")
        tvitem2.data = mydt2.getitemstring(m,"menutag")
        tvitem2.statepictureindex = 1
        this.insertitemlast(tvlever1,tvitem2)        
    next
this.expandall( tvlever1)
next
mydtx.f_destroydatastore( )
mydtx2.f_destroydatastore( )

this.setredraw( true)


二、点击权限组时,选择相对应的权限
1、无清空权限
C# codetreeviewitem tvi
long ll_tvi,ll_tvi2
ll_tvi = this.FindItem(RootTreeItem!, 0)
do while ll_tvi >0
    ll_tvi2 = this.finditem(childtreeitem!,ll_tvi)
    do while ll_tvi2>0
        this.getitem(ll_tvi2,tvi)
             tvi.statepictureindex = 1
             this.setitem(ll_tvi2,tvi)
        ll_tvi2 = this.finditem(nexttreeitem!,ll_tvi2)
    loop
    ll_tvi = this.finditem(nexttreeitem!,ll_tvi)
loop


2、生成权限
C# code
nvo_loginqx myqx

rightcode = myqx.f_pub_transdata_to_code( rightcode)

treeviewitem tvi
long ll_tvi,ll_tvi2
ll_tvi = this.FindItem(RootTreeItem!, 0)
do while ll_tvi >0
    ll_tvi2 = this.finditem(childtreeitem!,ll_tvi)
    do while ll_tvi2>0
        this.getitem(ll_tvi2,tvi)
        if myqx.f_pub_checkqx( tvi.data,rightcode) then
             tvi.statepictureindex = 2
             this.setitem(ll_tvi2,tvi)
        end if
        ll_tvi2 = this.finditem(nexttreeitem!,ll_tvi2)
    loop
    ll_tvi = this.finditem(nexttreeitem!,ll_tvi)
loop


三、保存权限
C# code
nvo_loginqx myqx
string rightcode
rightcode = fill('0',80)
treeviewitem tvi
long ll_tvi,ll_tvi2
ll_tvi = this.FindItem(RootTreeItem!, 0)
do while ll_tvi >0
    ll_tvi2 = this.finditem(childtreeitem!,ll_tvi)
    do while ll_tvi2>0
        this.getitem(ll_tvi2,tvi)
        if tvi.statepictureindex = 2 then  rightcode = replace(rightcode,integer(tvi.data),1,'1')   
        ll_tvi2 = this.finditem(nexttreeitem!,ll_tvi2)
    loop
    ll_tvi = this.finditem(nexttreeitem!,ll_tvi)
loop
return myqx.f_pub_transdata_to_string( rightcode)
共享共进共赢Sharing And Win-win Results
wlj78 楼主

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-31 20:45:07 | 显示全部楼层
myqx.f_pub_transdata_to_code( rightcode)把数据库字符串权限转化成二进制权限
myqx.f_pub_transdata_to_string( rightcode)把二进制权限转化为数据库存储的字符串
myqx.f_pub_checkqx( tvi.data,rightcode)检查当前tag值在二进制权限的数位,为1则是true否则为false
共享共进共赢Sharing And Win-win Results
wlj78 楼主

主题

0

回帖

601

积分

高级会员

积分
601
贡献
在线时间
小时
2011-10-31 20:45:41 | 显示全部楼层
权限设置的思想,权限码用二进制的0/1表示,其数位代表需要设置权限的控件tag值,再把二进制数四位一组存为字符0,1,2,3......进行存储压缩位数,我试了试效果不错,思路也挺好。
共享共进共赢Sharing And Win-win Results
fuxiaoyang13

主题

0

回帖

3136

积分

论坛元老

积分
3136
贡献
在线时间
小时
2011-11-1 12:51:33 | 显示全部楼层
学习!!!!
共享共进共赢Sharing And Win-win Results
a78782295

主题

0

回帖

163

积分

中级会员

积分
163
贡献
在线时间
小时
2012-3-22 17:01:24 | 显示全部楼层
竟然是 C#的code
共享共进共赢Sharing And Win-win Results
liqipeng182

主题

0

回帖

8863

积分

论坛元老

积分
8863
贡献
在线时间
小时
2013-10-5 22:12:51 | 显示全部楼层
学习了!!!!
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-4-28 20:16 , Processed in 0.079595 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表