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编辑过]