aardio 官方社区

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 21071|回复: 11

分享HTMLayout 分页代码

[复制链接]

47

主题

131

回帖

1167

积分

荣誉会员

积分
1167
发表于 2013-1-2 22:23:10 | 显示全部楼层 |阅读模式
功能列表:
搜索功能
首页按钮
最后一页
上一页
下一页
  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = ..win.form( bottom=399;parent=...;text="aardio Form";right=599 )
  4. winform.add(  )
  5. /*}}*/

  6. import sqlite.aes128;
  7. var sqlConn = sqlite.aes128("/database.db",key)

  8. if( not sqlConn.existsTable("black") ){  
  9.         sqlConn.exec("create table black(name, address integer default 0);")  
  10.         sqlConn.beginTrans();
  11.         for(i=101;200;1){               
  12.             sqlConn.exec("insert into black(address) values('"+ i + "');")
  13.         }
  14.         sqlConn.commitTrans();        
  15. }

  16.                         


  17. import web.layout;
  18. import web.layout.behavior.tabs;
  19. var wbLayout = web.layout(winform);

  20. import web.layout.debug; //导入该库以显示HTMLayout错误
  21. wbLayout.attachEventHandler( web.layout.debug ); //为CSSS!添加全局函数 debug;

  22. wbLayout.html = /*********
  23. <html>
  24. <head>
  25. <style>

  26.   html { background-color: #fff #e9e8f3 #e9e8f3 #fff; }

  27.   table
  28.   {
  29.     background:white;
  30.     border:1px solid #bdbccc;
  31.     width:100%%;
  32.     height:100%%;
  33.     behavior:grid column-resizer;
  34.                 overflow:auto;
  35.                 flow: table-fixed;
  36.     font-family:"Verdana";
  37.     font-size:9pt;  
  38.     border-spacing:0;
  39.   }

  40.   table th
  41.   {
  42.     color: white;
  43.     font-family:"Century Gothic","Verdana";
  44.           font-size:14pt;
  45.     border-right:1px solid silver;
  46.     border-bottom:1px solid silver;
  47.     padding:4px;
  48.     background-color:#AAA;
  49.   }

  50.   table th:hover
  51.   {
  52.     color: #ffe598;
  53.   }

  54.   table tr { height:1.6em; }
  55.         
  56.   table tr:current /* current row */
  57.   {
  58.     background-color:#bdbccc;
  59.     color:white;
  60.   }
  61.   table tr:nth-child(odd)
  62.   {
  63.     background-color: azure;
  64.   }

  65.   table td
  66.   {
  67.     padding:2px;
  68.     border-right:1px solid silver;
  69.     border-bottom:1px solid silver;
  70.   }

  71.   table td:nth-child(1) { font-weight:bold; text-align:center; } /* first column */

  72.   table td:nth-child(3) /* last column */
  73.   {
  74.      text-align:left;
  75.      overflow:hidden;        /* three line below - ellipsis */
  76.      text-overflow:ellipsis;
  77.      white-space:nowrap;
  78.   }
  79.         
  80.         table td:hover
  81.         {
  82.                 color:red;
  83.         }

  84. #statusbar{
  85. padding-top:10px;
  86. }
  87.    
  88. </style>


  89. </head>

  90. <body>

  91.   <p>数据列表</p>
  92.   
  93.   <p><input type="text" id="filter" value=""><input type="button" id="Search" value="搜索"></p>
  94.   
  95.   

  96. <table width=100% fixedrows=1 id="test">
  97.         <tr><th width=40%>地址</th><th width=20%>AA</th><th width=20%>BB</th><th width=20%>CC</th></tr>
  98. </table>







  99. <input type="button" id="FirstPage" value="首页">
  100. <input type="button" id="PreviousPage" value="上一页">
  101. <input type="button" id="NextPage" value="下一页">
  102. <input type="button" id="LastPage" value="最后一页">
  103. <div id="statusbar">总数量:<span id="count">0</span><span style="padding-left:20px;">当前页:</span><span id="CurrentPage">1</span><span style="padding-left:20px;">共:</span><span id="NumTotalPage">0</span>页</div>
  104. </body>

  105. </html>

  106. *********/

  107. replaceNull = function(str){
  108.         if(!str){
  109.                 return "";
  110.         }else {
  111.                 return str;
  112.         }
  113. }

  114. replaceSending = function(sending){
  115.         if(sending='N'){
  116.                 return "NoSending";
  117.         }else {
  118.                 return "";
  119.         }
  120. }

  121. var filter=""
  122. var numTotal = 0;
  123. var CurrentPage = 1;
  124. var NumTotalPage =0;

  125. Address = sqlConn.getTable("SELECT COUNT(*) FROM black" )
  126. numTotal =  Address[1]["COUNT(*)"];
  127. wbLayout.getEle("count").innerText = numTotal;

  128. //

  129. Listing = function(Filter,Page){
  130.         ItemPerNum = 10;
  131.         wbLayout.getEle("CurrentPage").innerText = CurrentPage;
  132.         
  133.         strCondition ="";
  134.         strSQL = "select address, name from black ";
  135.         if(string.len(filter)>0){
  136.                 strCondition = "WHERE address LIKE'%" + Filter + "%' ";
  137.         }
  138.         Offset = (CurrentPage-1) * ItemPerNum;
  139.         strSQL = strSQL + strCondition + "ORDER BY address LIMIT " + ItemPerNum  +" OFFSET "+Offset;
  140.         
  141.         
  142.         var eles = wbLayout.queryEles("tr[data='row']");
  143.         for(i,ele in eles){
  144.                 ele.delete();
  145.         };
  146.         
  147.         var sqlConn = sqlite.aes128("/database.db",key)
  148.         
  149.         Address = sqlConn.getTable("SELECT COUNT(*) FROM black " + strCondition)
  150.         numTotal = Address[1]["COUNT(*)"]
  151.         wbLayout.getEle("count").innerText = numTotal;
  152.         
  153.         NumTotalPage = math.ceil(numTotal/ItemPerNum); //获得总页数
  154.         wbLayout.getEle("NumTotalPage").innerText = NumTotalPage;
  155.         
  156.         for address,time_created,time_sent,sending in sqlConn.each(strSQL ) {
  157.                  wbLayout.getEle("test").insertAdjacentHTML("beforeEnd","<tr data='row' class='" + replaceSending(sending)+"'>"+
  158.                  "<td>"+replaceNull(address)+"</td>"+
  159.                  "<td>"+replaceNull(time_created)+"</td>"+
  160.                  "<td>"+replaceNull(time_sent)+"</td>"+
  161.                  "<td>"+replaceNull(sending)+"</td>"+
  162.                  "</tr>");
  163.         }
  164.         sqlConn.close();               
  165. }

  166. Listing("");

  167. wbLayout.onButtonClick = {
  168.         FirstPage = function (layoutEle,reason,behaviorParams) {  
  169.                 filter = string.trim(wbLayout.getEle("filter").value);
  170.                 CurrentPage = 1;
  171.                 Listing(filter);               
  172.         }
  173.         LastPage = function (layoutEle,reason,behaviorParams) {
  174.                 filter = string.trim(wbLayout.getEle("filter").value);
  175.                 CurrentPage = NumTotalPage;
  176.                 Listing(filter);               
  177.         }        

  178.          PreviousPage = function (layoutEle,reason,behaviorParams) {
  179.                 filter = string.trim(wbLayout.getEle("filter").value);
  180.                 CurrentPage =CurrentPage-1;
  181.                 if(CurrentPage<1){
  182.                         CurrentPage = 1; // 如果当前页<1                        
  183.                 }
  184.                 Listing(filter);
  185.         }                 
  186.          NextPage = function (layoutEle,reason,behaviorParams) {
  187.                 filter = string.trim(wbLayout.getEle("filter").value);
  188.                 CurrentPage = CurrentPage+1;
  189.                 if(CurrentPage>NumTotalPage){
  190.                         CurrentPage = NumTotalPage;
  191.                 }
  192.                 Listing(filter);
  193.         }                 
  194.         Search = function (layoutEle,reason,behaviorParams) {
  195.                 filter = string.trim(wbLayout.getEle("filter").value);
  196.                 CurrentPage = 1;
  197.                 Listing(filter);
  198.         }                 
  199. }

  200. sqlConn.close();
  201. winform.show();
  202. win.loopMessage();
  203. return winform,wbLayout;


复制代码

评分

参与人数 2 +70 收起 理由
ProPHP + 30 赞一个!
万事发↑新一天 + 40 赞一个!

查看全部评分

8

主题

88

回帖

635

积分

三级会员

积分
635
发表于 2013-1-3 11:30:58 | 显示全部楼层
正用到, 多谢分享

48

主题

542

回帖

3328

积分

五级会员

积分
3328
发表于 2013-1-3 14:17:45 | 显示全部楼层
这个得顶 挺酷的

8

主题

88

回帖

635

积分

三级会员

积分
635
发表于 2013-1-3 15:42:21 | 显示全部楼层
双击编辑,怎样编写事件,刚接确HTMLayout,好多看不明,先谢!

12

主题

48

回帖

434

积分

二级会员

积分
434
发表于 2013-3-6 23:13:04 | 显示全部楼层
需要,收藏下!

0

主题

4

回帖

22

积分

新手入门

积分
22
发表于 2013-3-8 18:26:21 | 显示全部楼层
感谢分享

5

主题

67

回帖

468

积分

二级会员

积分
468
发表于 2013-10-26 13:43:01 | 显示全部楼层
这个太厉害了,学习

0

主题

30

回帖

344

积分

培训班

积分
344
QQ
发表于 2013-11-9 23:26:33 | 显示全部楼层
这个需要的先收藏一下。

0

主题

1

回帖

31

积分

新手入门

积分
31
发表于 2013-12-8 19:48:29 | 显示全部楼层
谢谢分享

0

主题

1

回帖

7

积分

新手入门

积分
7
发表于 2015-7-25 15:49:37 | 显示全部楼层
这两天正找这个呢 不胜感激

0

主题

14

回帖

149

积分

一级会员

积分
149
发表于 2016-5-19 13:17:22 | 显示全部楼层
在aardio 10里面,需要做一些修改,
将wbLayout.getEle("count").innerText = numTotal;类似的语句修改成
wbLayout.getEle("count").innerText = tostring(numTotal);

6

主题

86

回帖

794

积分

三级会员

积分
794
发表于 2016-5-21 19:40:57 | 显示全部楼层
运行出错,提示库文件错误:
文件:[string "import win.ui;..."]
错误行号:#161
错误行号:#121
文件:D:\aardio\lib\web\layout\element\_.aardio:
不支持此操作:get length of
定义类型:variable(local)
名字:'v'
类型:number
---------------------------------------------------
调用栈:
    [kernel]: in function 'error'
    D:\aardio\lib\util\metaProperty.aardio:37: in function <D:\aardio\lib\util\metaProperty.aardio:32>
    [string "import win.ui;..."]:161: in main chunk
打开提示的文件,找到121行是红色字体这个代码
                innerText = {
                        _set = function (v) {
                                SetElementInnerText(owner[["handle"]], v, #v);
                        }
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-6-6 21:59 , Processed in 0.079234 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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