以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  值不能为空  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=186735)

--  作者:ycs5801
--  发布时间:2023/5/25 10:50:00
--  值不能为空

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:自定义函数,infinitescroll
详细错误信息:
调用的目标发生了异常。
值不能为 null。
参数名: s

 

报错信息如上,函数如下

Dim e As RequestEventArgs = args(0)
Dim wb As New weui
wb.AppendHTML("<link rel=\'stylesheet\' href=\'./weui/exweui.css\'/>", True)
wb.AppendHTML("<script src=\'./weui/exweui.js\' ></script>", True)


Dim json As String = e.PlainText

Dim jo2 As JObject = JObject.parse(json)
Dim drs As List(Of DataRow) = DataTables("聊天数据").SQLSelect("[_Identify] > " & jo2("max").ToString , 5 , "[_Identify]")
Dim jo As New JObject
jo("page") = CInt(jo2("page")) + 1 \'模拟页数+1 
jo("max") = CStr(drs(drs.Count - 1)("_Identify")) \'模拟返回最大编号 

If drs.count < 5 Then \'如果行数小于5,说明没有更多数据了 
    jo("done") = True
Else
    With wb.AddPanelGroup("", "pg1" & jo("page").ToString, "")
        For Each dr As DataRow In drs
            .Add( "用户名: " & dr("用户名"), "时间: " & dr("时间") & ", 聊天内容: " & dr("聊天内容"), "./images/button.png")
 
        Next
    End With
    jo("html") = wb.BuildHtml("pg1" & jo("page").ToString)
End If
System.Threading.Thread.Sleep(500) \'模拟延时的加载 
e.WriteString(jo.ToString)


--  作者:有点蓝
--  发布时间:2023/5/25 11:00:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错
--  作者:ycs5801
--  发布时间:2023/5/25 11:11:00
--  
messagebox.Show("2")
Dim jo2 As JObject = JObject.parse(json)
messagebox.Show("3")

这句报错

--  作者:有点蓝
--  发布时间:2023/5/25 11:14:00
--  
没有接收到json数据

messagebox.Show(
json)
--  作者:ycs5801
--  发布时间:2023/5/25 15:06:00
--  
我是按 exweui帮助文件中摘抄的 
滚动加载 InfiniteScroll

滚动加载组件在鼠标滚轮向下滚动页面到底部,或者触摸设备触摸滚动页面到底部后动态加载列表数据。一般配合List(列表)Panel 等列表型控件使用。

这个案例能不能直接摘抄过来用?


--  作者:有点蓝
--  发布时间:2023/5/25 15:20:00
--  
别人的东西都不可能抄来就能用的,理解代码,改为符合自己的用法
--  作者:ycs5801
--  发布时间:2023/5/25 20:19:00
--  
Dim wb As New weui  
Select Case e.Path  
    Case "infinitescroll"  
        wb.AppendHTML("<link rel=\'stylesheet\' href=\'./weui/exweui.css\'/>",True)  
        wb.AppendHTML("<script src=\'./weui/exweui.js\' ></script>",True)  
        With ExWeUI.WebUI.AddExInfiniteScroll("pr01","testcallback",0,8)  
            Dim wb2 As New weui \'用于生成默认列表  
            With wb2.AddPanelGroup("","pg1","")  
                Dim txt As String = "由各种物质组成的巨型球状天体,叫做星球.星球有一定的形状,有自己的运行轨道."  
                For i As Integer = 1 To 8  
                    .Add("pn1" & i,"标题" & i,txt,"./images/button.png","http://www.foxtable.com") \'超链接  
                Next  
            End With  
            .Content = wb2.BuildHtml("pg1") \'设置默认显示的列表  
            wb.InsertHTML(.BuildHtml)  
        End With  
        wb.AppendHTML("<script>initExWeUI();</script>")  
        e.WriteString(wb.Build)  
    Case "testcallback"  
        Dim json As String = e.PlainText  
        Dim jo2 As JObject = JObject.parse(json)  
          
        Dim jo As new JObject  
        jo("page") = cint(jo2("page")) + 1  
        jo("max") = val(jo2("max")) + 5  
          
        Dim cnt As Integer = val(jo2("max")) + 1  
          
        If cnt>=20 Then \'模拟数据加载完毕  
            jo("done") = True  
            jo("tip") = "啊哦! 你居然看完了所有内容!"\'更改加载完毕后的提示
        Else  
            Dim wb As New weui  
            With wb.AddPanelGroup("","pg1","")  
                Dim txt As String = "由各种物质组成的巨型球状天体,叫做星球.星球有一定的形状,有自己的运行轨道."  
                For i As Integer = cnt To cnt+4  
                    .Add("pn1" & i,"标题" & i,txt,"./images/button.png","http://www.foxtable.com") \'超链接  
                Next  
            End With  
            jo("html") = wb.BuildHtml("pg1")  
        End If  
        System.Threading.Thread.Sleep(1000)  
        e.WriteString(jo.ToString)  
End Select  

以上帮助实例代码复制到网络监视器中,点确定提示  变量wb封闭在变量

--  作者:ycs5801
--  发布时间:2023/5/25 20:20:00
--  
我不知道实例中,我还应该补充哪类代码我才能正常使用?比如 js的?
--  作者:有点蓝
--  发布时间:2023/5/25 20:28:00
--  
很明显,代码里出现了2次【Dim wb As New weui  】,定义的变量名称重复了,应该是写帮助的时候写错了,去掉第二句【Dim wb As New weui  】。建议参考对应的实例里的测试代码吧
--  作者:ycs5801
--  发布时间:2023/5/25 21:03:00
--  
没看出来这个是怎么数据交互的,不用sendAjaxText这样的函数吗 ?