以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:在Table中ActiveSheet和Attribute 同时生效问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109445)

--  作者:lanbor
--  发布时间:2017/11/12 12:25:00
--  请教:在Table中ActiveSheet和Attribute 同时生效问题。
我不懂得如何让Table中ActiveSheet和Attribute 两个属性同时生效。
如下面部份语句:
Wi th wb.Add Table("","Ta ble1")
    .PageNumber = page 
    .ActiveSheet = "menu"
    .Attribute="onc/ick=\'view_OrderLine()\'"
    .Colwidth="12px"
    .Highlight= 1
    .Alternate = 2 

我本希望:
1.当用户单点某行记录时,能调用一个列表函数,直接在当前页面显示本订单的采购明细。
2.当用户双点某行记录时,能弹出底部菜单,对当前订单进选择性操作。

请教:
上面的语句需要如何修改,才能达到两个属性都能同时生效。
谢谢你!

--  作者:有点甜
--  发布时间:2017/11/12 20:37:00
--  

参考

 

http://www.foxtable.com/mobilehelp/scr/0147.htm

 


--  作者:lanbor
--  发布时间:2017/11/12 22:23:00
--  多谢专家提示,再请教!
请恕学生愚鈍!

针对以下语句
Wi th wb.Add Table("","Ta ble1")
    .PageNumber = page 
    .Attribute="onc/ick=\'view_OrderLine()\'"    ‘这种方式函数能正常调用
或者
    .AfterSelChange = "view_OrderLine()"           ‘这种方式函数也能正常调用
    .ActiveSheet = "menu"     ‘关键上我用上面任何一种方式能执行函数,但双点记录行时,这ActiveSheet 底部菜单就是不出现
    .Colwidth="12px"
    .Highlight= 1
    .Alternate = 2 

再请教:
我用.Attribute="onc/ick=\'view_OrderLine()\'"    ‘这种能正常调用
.AfterSelChange = "user_power1()"          ’ ‘这种也能正常调用
问题是上我用上面任何一种方式能执行函数,但双点记录行时,这ActiveSheet 底部菜单就是不出现
但我把这.Attribute或者.AfterSelChange属性行注释后,这ActiveSheet 底部菜单就能出现

请专家指点,多谢多谢!



--  作者:有点甜
--  发布时间:2017/11/12 22:48:00
--  

测试,没问题

 

Select Case e.Path
    Case "test.htm",""
        Dim wb As New WeUI
        With wb.AddInputGroup("","ipg2","备注")
            .AddTextArea("bz",5).Placeholder = "请输入200字以内的备注"
        End With
        With wb.AddTable("","table1")
            .AfterSelChange = "bz.value = new Date()" \'置顶选择不同单元格后要执行的js行数,注意区分大小写
            .head.AddRow("部门","姓名","年龄","电话","地址") \'表头
            .body.AddRow("技术部","张三","36","110","中国北京") \'数据
            .body.AddRow("技术部","李四","38","110","中国上海")
            .body.AddRow("技术部","王五","39","110","中国深圳")
            .body.AddRow("生产部","赵六","39","110","中国深圳")
            .body.AddRow("生产部","刘七","39","110","中国深圳")
            .ActiveSheet = "menu" \'指定菜单
        End With
        With wb.AddActionSheet("","menu") \'设计菜单
            .Add("menu1", "菜单项目1")
            .Add("menu2", "菜单项目2")
            .Add("menu3", "菜单项目3")
            .Add("menu4","取消","",True)
        End With
        wb.AppendHTML("<script src=\'./lib/activesheet.js\'></script>") \'引入脚本文件
        e.WriteString(wb.Build)
End Select


--  作者:lanbor
--  发布时间:2017/11/13 10:34:00
--  感谢专家,您的样本确实非常好!再请教!
感谢专家:有点甜
您每次提供的帮助都非常精典,我一测试OK!

我上传一个:模似订单审核的语句。

主是问题还是:
     .AfterSelChange = "statekey=1;po_audit()"             \'这里还是没有明白道理,不能与 .ActiveSheet = "menu" 同时起作用
    \'.Attribute="""       \'这里还是没有明白道理,不能与 .ActiveSheet = "menu" 同时起作用
我的作业与本页地址:http://www.foxtable.com/mobilehelp/scr/0147.htm  就多了一句:wb.AddF orm("","form1",url)

再次诚请专家帮我批一下,究竟哪里做得不对。
多谢多谢您了!


---奇怪,我不能看到我上传的*.zip附件---
[此贴子已经被作者于2017/11/13 10:38:47编辑过]

--  作者:有点甜
--  发布时间:2017/11/13 10:38:00
--  

你 po_audit() 里面写了什么代码?

 

尽量做一个例子发上来测试。


--  作者:lanbor
--  发布时间:2017/11/13 10:45:00
--  我zip里面放在就是整个审核代码,加order.js文件
专家好:
我zip里面放在就是整个审核代码,加order.js文件
请将po_audit-zip.txt 变更成po_audit-zip.zip
我的代码对您来说非常简单的。
感谢感谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:po_audit-zip.txt

[此贴子已经被作者于2017/11/13 10:47:20编辑过]

--  作者:有点甜
--  发布时间:2017/11/13 11:09:00
--  

你在 po_audit() 里面设置了 Location

 

Location是相当于你打开一个新的网页的意思

 

双击后,会先触发单击事件,再触发双击事件的,你网页刷新到一个新的网页去了,自然不会再显示菜单。

 

如果要区分单击和双击,参考

 

Select Case e.Path
    Case "test.htm",""
        Dim wb As New WeUI
        With wb.AddInputGroup("","ipg2","备注")
            .AddTextArea("bz",5).Placeholder = "请输入200字以内的备注"
        End With
        With wb.AddTable("","table1")
            .Attribute = "onclick=""test()"""
            .head.AddRow("部门","姓名","年龄","电话","地址") \'表头
            .body.AddRow("技术部","张三","36","110","中国北京") \'数据
            .body.AddRow("技术部","李四","38","110","中国上海")
            .body.AddRow("技术部","王五","39","110","中国深圳")
            .body.AddRow("生产部","赵六","39","110","中国深圳")
            .body.AddRow("生产部","刘七","39","110","中国深圳")
        End With
        With wb.AddActionSheet("","menu") \'设计菜单
            .Add("menu1", "菜单项目1")
            .Add("menu2", "菜单项目2")
            .Add("menu3", "菜单项目3")
            .Add("menu4","取消","",True)
        End With
        wb.AppendHTML("<script>var i = 0;function test()  {i += 1; var val = setTimeout(\'call()\',250); if(i==2){clearTimeout(val);}} function call()  { if(i==1){alert(\'click\');}else if(i==2){alert(\'dblclick\');}i=0} </script>")

        e.WriteString(wb.Build)
End Select

[此贴子已经被作者于2017/11/13 11:10:05编辑过]

--  作者:lanbor
--  发布时间:2017/11/13 11:16:00
--  感谢专家提示!我立即糾正方法!
感谢专家提示!

就这2句话,让我学到了新知识点。

Location是相当于你打开一个新的网页的意思

 双击后,会先触发单击事件,再触发双击事件的,你网页刷新到一个新的网页去了,自然不会再显示菜单。

您提供的新测试样本也是我学习的好教材!


多谢多谢您!

[此贴子已经被作者于2017/11/13 11:19:15编辑过]

--  作者:lanbor
--  发布时间:2017/11/13 15:37:00
--  终于解决了这个问题,再请教!
楼上的问题终于解决了,再请教!

我的po_audit函数语句变更成如下:
//--------------------------------
fu nction po_audit() {
show("state0");hide("state1"); hide("state2"); hide("state3");hide("state4");
if (ta ble1.primary key){
var result=tab le1.rows[tab le1.rowSel].cells[4].inner HTML
show("state0");
switch(result)
{
case "新建":
     show("state1"); break;
case "已提交":
     show("state2"); show("state3"); break;
case "已审核":
     show("state4"); break;
} } }
//----------------------------------

结果是:
我点某一行,按钮能按照预想的显示或隐藏起来,
底部菜单也能正常使用
但在网页刚加载的时候,这些state0,state1,state2,state3,state4按钮是处于显示状态

请教:
如何在刚加载网页的时候、仅执行一次 <bo dy  on load="po_audit()">, 把这些按钮都先隐藏起来?
主要是这代码怎么放?或是应该用其他方法?
先谢谢专家!




[此贴子已经被作者于2017/11/13 15:39:51编辑过]