以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]WeUI框架中的表格数据处理  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=99934)

--  作者:kensou11111
--  发布时间:2017/4/30 12:11:00
--  [求助]WeUI框架中的表格数据处理
我想做一个类似帮助中的案例,设计了这个页面

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

代码如下:
Dim fl As String = "d:\\web\\" & e.path
If filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"
            e.WriteFile(fl)
            Return \'这里必须返回
    End Select
End If
Select Case e.Path
    Case "addnew.htm"
        Dim wb As New weui
        If E.PostValues.Count = 0 Then
            wb.AddForm("","form1","ADDNEW.htm")
            With wb.AddInputGroup("form1","ipg1","录入")
                .AddInput("物料编码","物料编码","text")
                .AddInput("申购数量","申购数量","number")
                .AddInput("到货日期","到货日期","date")
            End With
            With wb.AddButtonGroup("form1","btg1",False)
                .Add("btn1", "增加明细", "submit").Value = "btn1"
                .Add("btn2", "上传数据", "submit").Value = "btn1"
                .Add("btn3", "取消", "reset")
            End With
            With wb.AddTable("form1","Table1")
                .head.AddRow("物料编码","申购数量","到货日期") \'表头
                .body.AddRow("AAA",111,#12/01/2008#)
                .body.AddRow("BBB",222,#12/02/2008#)
                .body.AddRow("CCC",333,#12/03/2008#)
            End With
            e.WriteString(wb.Build) \'生成网页
        Else
            Dim nms() As String = {"物料编码","申购数量","到货日期"} \'不能为空的列名数组
            For Each nm As String In nms
                If e.PostValues.ContainsKey(nm) = False Then \'生成错误提示页
                    With wb.AddMsgPage("","msgpage","增加失败", nm & "列不能为空!")
                        .icon = "Warn" \'改变图标
                        .AddButton("btn1","返回").Attribute = ""
                    End With
                    e.WriteString(wb.Build)
                    Return \'必须返回
                End If
            Next
            If e.PostValues.ContainsKey("btn1") Then
                \'------想把这段代码改为在页面表格中新增一行数据-------------
                Dim dr As DataRow = DataTables("表A").AddNew()
                For Each nm As String In nms
                    If e.PostValues.ContainsKey(nm) Then
                        dr(nm) = e.PostValues(nm)
                    End If
                Next
                \'------想把这段代码改为在页面表格中新增一行数据-------------
                
                With wb.AddMsgPage("","增加成功","增加成功","新增明细成功")
                    .AddButton("btn1","继续增加","addnew.htm")
                End With
                e.WriteString(wb.Build)
            ElseIf e.PostValues.ContainsKey("btn2") Then
                \'------想把页面表格的数据上传到服务器中,然后清空页面的表格,代码应如何写?-------------
                
                With wb.AddMsgPage("","提交成功","提交成功","数据已提交到服务器中")
                    .AddButton("btn1","确认","addnew.htm")
                End With
                e.WriteString(wb.Build)
            End If
        End If
End Select
[此贴子已经被作者于2017/4/30 12:13:08编辑过]

--  作者:kensou11111
--  发布时间:2017/4/30 22:43:00
--  
1. 通过按钮给已经生成的表格增加一行,应该怎么写代码?

2. 如何通过按钮将表格中的每一行都上传到服务器呢?狐表中可以用dr as datarow in datatables(“表格”).datarows 的方式,那么页面表格中是否有类似的方式?

--  作者:kensou11111
--  发布时间:2017/5/2 8:30:00
--  
帮助中的例子是每新增一行明细就直接在服务器中新增数据然后重新读取,我则是想新增的明细先保存在页面表格中,然后再一次性全部上传到服务器中。
--  作者:有点色
--  发布时间:2017/5/2 9:50:00
--  
以下是引用kensou11111在2017/5/2 8:30:00的发言:
帮助中的例子是每新增一行明细就直接在服务器中新增数据然后重新读取,我则是想新增的明细先保存在页面表格中,然后再一次性全部上传到服务器中。

 

你这种方式比较麻烦。控制起来有难度。也不适合手机上使用。

 

1、页面上的表格,只是一种呈现,不是真实的表,无法直接上传或保存的。

 

2、如果你要做,你要学习js和html的知识,动态的插入一行。

 

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