以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  提示这个错误,是哪原因?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106550)

--  作者:苍风霁月
--  发布时间:2017/9/11 14:21:00
--  提示这个错误,是哪原因?
在移动开发中,控件Attribute 属性的onchange事件提示错误,请问下有哪些原因可引起?测了很久也没找到地方。

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20170911115636.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/9/11 14:47:00
--  

加入msgbox,定位出错位置。贴出对应出错代码。

 

http://www.foxtable.com/webhelp/scr/1485.htm

 

 


--  作者:苍风霁月
--  发布时间:2017/9/11 15:44:00
--  
是用的该方式调试的,没找到问题点。

我想实现的功能,就是用一个开关的onchange事件,根据并关的值调整界面显示的值。代码如下:
Dim e As RequestEventArgs = args(0)
Dim wb As WeUI = Args(1)
    Dim dm,mc As String
    For Each key As String In e.Values.Keys
        Select key
            Case "name"
                mc=e.Values(key)
            Case "code"
                dm= e.Values(key)
        End Select
    Next
    wb.AddPageTitle("","pageheader","产品信息","")
    wb.AddForm("","form1","replay.htm")
    Dim dr As DataRow = DataTables("产品表").Find("代码 = \'" & dm & "\'")
    With wb.AddInputGroup("form1","ipg1","")
        With .AddInput("dm","代码","text")
            .value = dm
            .Readonly=True
        End With
        With .AddInput("mc","名称","text")
            .value = mc
            .Readonly=True
        End With
        Dim yj,jj As Single
        If dr("是否协议价") ="是" Then
            yj = dr("协议月均价")
            jj = dr("协议季均价")
        Else
            yj = dr("月均价")
            jj = dr("季均价")
        End If
        With .AddInput("yj","月均价","number")
            .Step =0.01
            .Value = yj
            .Required=True
        End With
        With .AddInput("jj","季均价","number")
            .Step =0.01
            .Value = jj
            .Required=True
        End With
   .AddSwitch("xyj","是否协议价",iif(dr("是否协议价") ="是",False,True)).Attribute = ""
End With
With wb.AddButtonGroup("form1","btg1",False)
    .Add("btn1", "确定", "submit")
    .Add("btn2", "返回", "","default.htm")
End With
wb.AppendHTML("<script src=\'./lib/ajaxform.js\'></script>") \'引入脚本文件
e.WriteString(wb.Build)

getAvgPrice.htm代码:
    Dim dr1 As DataRow = DataTables("产品表").Find("代码 = \'" & e.Values("dm") & "\'")
    If dr1 IsNot Nothing Then
        If e.Values("xyj")="on" Then
            e.WriteString(dr1("协议月均价") & "|" & dr1("协议季均价"))
        Else
            e.WriteString(dr1("月均价") & "|" & dr1("季均价"))
        End If
    Else
        e.WriteString("未找到相关数据")
    End If
       


js代码:
function setAvgPrice(){
    var result= submitAjaxFileds(\'getAvgPrice.htm\',\'\',\'dm\',\'xyj\',false); //根据是否协议价设置界面均价
    if(result){
        var vals=result.split("|");
        if(vals.length==2){
            document.getElementById("yj").value=vals[0];
            document.getElementById("jj").value=vals[1];
        }
    }
}
[此贴子已经被作者于2017/9/11 16:02:24编辑过]

--  作者:有点甜
--  发布时间:2017/9/11 15:46:00
--  

查找之后,要判断是否有值

 

Dim dr As DataRow = DataTables("产品表").Find("代码 = \'" & dm & "\'")

If dr Is Nothing Then

    msgbox("没有找到")

Else

    \'其余代码

End If


--  作者:苍风霁月
--  发布时间:2017/9/11 15:52:00
--  
加上也是一样的提示
--  作者:有点甜
--  发布时间:2017/9/11 15:54:00
--  

贴出你修改后的代码。

 

加入msgbox,看弹出到哪里开始报错,确定出错位置。

 

 


--  作者:苍风霁月
--  发布时间:2017/9/11 16:07:00
--  
界面生成后,正常载入数据!
点击开关按钮,下面第一个提示都没进行。
Dim e As RequestEventArgs = args(0)
Dim wb As WeUI = Args(1)
MessageBox.Show(0)

--  作者:有点甜
--  发布时间:2017/9/11 16:13:00
--  
 那报什么错?做个具体例子发上来测试。
--  作者:苍风霁月
--  发布时间:2017/9/11 16:21:00
--  
例子太大了,提示


.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2017.8.19.1
错误所在事件:项目,HttpRequest
详细错误信息:
未将对象引用设置到对象的实例。


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

 httpRequest加入msgbox,定位出错的代码。