Foxtable(狐表)用户栏目专家坐堂 → 帮忙看一下网络代码 3个问题 分页显示 编辑 删除


  共有2449人关注过本帖树形打印复制链接

主题:帮忙看一下网络代码 3个问题 分页显示 编辑 删除

帅哥哟,离线,有人找我吗?
夜点蚊香
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
帮忙看一下网络代码 3个问题 分页显示 编辑 删除  发帖心情 Post By:2020/11/10 8:16:00 [只看该作者]

HttpRequest事件 代码如下 我是在 foxtable中的表进行操作,没有用外部表
问题1.分页显示不起作用
问题2.编辑功能,可以修改表单中的数据.但是,当时不显示,需要重新关闭foxtable,再打开项目才能显示.如何才能及时显示修改内容
问题3,删除功能,和问题2功能一样,可以删除数据行,但是,网页操作删除后,foxtable还能看见数据,如何才能让同步及时删除后,foxtable里也看不到数据行.
Dim sb As New StringBuilder
Select Case e.Path
    Case "list.htm"
        Dim page As Integer = 0 '默认page为0,显示第一页
        Dim pageRows As Integer = 2 '每页10行 '这一行写了数值2但是不起作用.
        If e.GetValues.ContainsKey("page") Then  '如果地址中有page参数
            Integer.TryParse(e.GetValues("page"), page) '提取page参数
        End If
        Dim StartRow As Integer = page * pageRows '此页第一行
        Dim EndRow As Integer = (page + 1) * pageRows - 1 '此页最后一行
        Dim lst As List(of DataRow) = DataTables("设置_星级").Select("","创建日期时间 Desc") '按日期顺序显示
        If StartRow > lst.Count -1 Then
            e.WriteString("已经是最后一页!")
            Return
        End If
        EndRow = Math.Min(EndRow, lst.Count - 1) '这是必须的
        
        Dim nms() As String = {"序号","星级","创建人","创建日期时间","修改人","修改日期时间"}
        sb.AppendLine("<Table border='1'>")
        sb.AppendLine("<caption>订单浏览<caption></br>")
        sb.Append("<tr>")
        For Each nm As String In nms
            sb.Append("<td>" & nm & "</td>")
        Next
        sb.Append("<td></td>")
        sb.Append("<td></td>")
        sb.AppendLine("</tr>")
        For Each r As DataRow In lst
            sb.Append("<tr>")
            For Each nm As String In nms
                sb.Append("<td>" & r(nm) & "</td>")
            Next
            sb.Append("<td><a href='edit.htm?id=" & r("_Identify") & "&page=" & page & "'>编辑</a></td>")
            sb.Append("<td><a href='delete.htm?id=" & r("_Identify") & "&page=" & page & "'>删除</a></td>")
            sb.AppendLine("</tr>")
        Next
        sb.AppendLine("</Table></br></br>")
        If page > 0 Then
            sb.Append("<a href='list.htm?page=" & page - 1 & "'>上一页</a> ")
        End If
        If EndRow < lst.Count -1 Then
            sb.Append("<a href='list.htm?page=" & page + 1 & "'>下一页 </a>" )
        End If
        e.WriteString(sb.ToString)
    Case "delete.htm" '删除订单
        If e.GetValues.ContainsKey("id") AndAlso e.GetValues.ContainsKey("page") Then
            Dim cnt As Integer
            cnt = DataTables("设置_星级").SQLDeleteFor("[_Identify] = " & e.GetValues("id"))
            If cnt > 0 Then
                sb.AppendLine("删除成功!</br></br>")
            Else
                sb.AppendLine("删除失败!</br></br>")
            End If
            sb.Append("<a href='list.htm?page=" & e.GetValues("page") & "'>返回列表</a>" )
            e.WriteString(sb.ToString)
        Else
            e.WriteString("糟糕,可能出错了")
        End If
    Case "edit.htm" '编辑订单
        If e.GetValues.ContainsKey("id") AndAlso e.GetValues.ContainsKey("page") Then
            Dim dr As DataRow = DataTables("设置_星级").SQLFind("[_Identify] = " & e.GetValues("id"))
            If dr Is Nothing Then
                e.WriteString("此订单不存在,可能已经被其他用户删除!")
                Return
            End If
            If e.PostValues.Count = 0 Then '生成编辑页面
                sb.appendLine("<form action='edit.htm?id=" & e.GetValues("id") & "&page=" & e.GetValues("page") & "' method='post' id='form1' name='form1'>")
                sb.appendLine("星级: <input name='xj' id='xj' value='" & dr("星级") & "'><br/><br/>")
                sb.appendLine("<input Type='submit' name='Sumbit' id='Sumbit' value='确定'>")
                sb.appendLine("</form>")
                e.WriteString(sb.ToString)
            Else '获取用户提交的数据
                Dim inms() As String = {"xj"} '输入框名称数组
                Dim cnms() As String = {"星级"} '列名数组,注意列名和输入框必须一一对应,位置不能错乱
                For i As Integer = 0 To inms.Length -1
                    If e.PostValues.ContainsKey(inms(i)) Then '必须判断,因为PostValues集合只包括已经输入的值
                        dr(cnms(i)) = e.PostValues(Inms(i))
                    End If
                Next
                dr.Save() '用SQLAddNew增加的行,必须保存一下,否则会被丢弃.
                sb.AppendLine("编辑订单成功! <br/><br/>")
                sb.AppendLine("<a href='list.htm?page=" & e.GetValues("page") & "'>返回列表</a>")
                e.WriteString(sb.ToString)
            End If
        Else
            e.WriteString("糟糕,可能出错了")
        End If
End Select
[此贴子已经被作者于2020/11/10 8:20:17编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/10 9:37:00 [只看该作者]

首先做bs开发,您之前开发客户端的思维和理念要改变一下:bs服务端程序是放到服务器24小时运行的,一般不会有人去服务器把服务端程序当作客户端来使用。所以服务端程序界面表格能不能看到更新的数据不重要,也基本没有意义,因为没有人会去看。如果要看也应该在自己的客户端电脑看,就算一点要在服务端查看数据,也不需要重启,直接同步数据即可:http://www.foxtable.com/webhelp/topics/0115.htm

其次,服务端程序是多人使用的,所以尽量不要操作界面的主表,比如加载/分页什么的,因为可能多人都在使用这个表,a用户在加载,b用户在分页,那就乱套了。

1、代码种没看到到有分页的用法,建议还是参考帮助里的分页用法:http://www.foxtable.com/mobilehelp/topics/0114.htm
2、3、看上面说明

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:641 积分:4920 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2020/11/10 10:06:00 [只看该作者]

我再看看后面的视频,看到这个视频了,自己测试了一下,发现了这几个问题.

 回到顶部