以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 帮忙看一下网络代码 3个问题 分页显示 编辑 删除 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158155) |
-- 作者:夜点蚊香 -- 发布时间:2020/11/10 8:16:00 -- 帮忙看一下网络代码 3个问题 分页显示 编辑 删除 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编辑过]
|
-- 作者:有点蓝 -- 发布时间: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、看上面说明
|
-- 作者:夜点蚊香 -- 发布时间:2020/11/10 10:06:00 -- 我再看看后面的视频,看到这个视频了,自己测试了一下,发现了这几个问题. |