1、问题描述

最近一直在搞公司老系统的需求开发,前端是asp,后端的vb。碰到了一个需求,是做一个”日志查询”功能,查询条件为:时间&操作人。

原本我的设计思路是异步查询,通过ajax传参到后端再把后端查询结果返回过来,这样就可以既得到查询结果,也可以保留当前的查询条件。但实际操作起来碰到了困难。

公司老系统这种前后端ajax交互的逻辑是:

这种方式貌似只能ajax返回字符串,而我的查询结果是一个集合,我不知道在xxxAjax.asp的{...}中该怎么定义并接收一个list。

因为用的技术语言比较老,网上也没找到相关的解决方法。

2、解决方法

后来我参考了其他相似功能的页面,没有用ajax,而是用了Request.QueryString。asp页面把查询条件封装成form传给自己,Request.QueryString其实就是获取url中传过来的值的,就像这些:

Request.QueryString是获取get请求的,而另一种Request.Form是获取post请求的

具体可以参考:关于request.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法

Request.QueryString.Count判断传过来的参数数量,如果数量>0则调用后端方法,否则不调用。这样就避免了刚打开该查询页面,参数都为null,导致的参数缺失错误!(因为asp的执行顺序是先执行<%...%>里面的代码。然后再去执行<head><body><script>里面的代码。这和jsp一样。所以如果不先做Request.QueryString.Count>0判断再调后端方法就会报参数缺失错误的)至于查询后保留查询条件就很简单了,因为本来参数就是自己传给自己的,所以直接Request接收就行了。

<%
Set bzHrHirePlan = CreateObject("bzHrHirePlan.wsc")
dateNow=aspCommon.FormatTime(Date,1)
if Request("BeginDate")<>"" and Request("EndDate")<>"" then
dBeginDate=Request("BeginDate")&""
dEndDate=Request("EndDate")&""
else
dBeginDate=dateNow
dEndDate=dateNow
end if
if Request("operatorTxt")<>"" then
sOperator=Request("operatorTxt")
else
sOperator=auCommon.LOGON_UID
end if
%> ...asp前端代码 <% If Request.QueryString.Count <> 0 Then
Set rs1 = bzHrHirePlan.ListLog(null,dBeginDate,dEndDate,sOperator)
If rs1.EOF Then
%>
<p>[没有符合条件的记录。]</p>
<% Else %>
<table class="table table-datalist">
<tr>
<th>序号</th>
<th>职位编号</th>
<th>操作人</th>
<th>操作时间</th>
<th>记录</th>
</tr>
<% i=0
Do While Not rs1.EOF
i=i + 1
idPlan=Right("00000"&rs1("EventKeyLink"),5)
operator=rs1("EventHandler")
operateTime=rs1("LogTime")
record=rs1("EventDescription") %>
<tr>
<td>
<%=i%>
</td>
<td>
<%=idPlan%>
</td>
<td>
<%=operator%>
</td>
<td>
<%=operateTime%>
</td>
<td>
<%=record%>
</td>
</tr>
<% rs1.MoveNext
Loop %>
</table>
<% End If
rs1.Close
End If %>

3、参考资料

关于request.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法https://blog.csdn.net/a6225301/article/details/8970595

最新文章

  1. ASP.NET页面中去除VIEWSTATE视图状态乱码
  2. WPF QuickStart系列
  3. Appserv环境下搭建的PHP环境升级PHP版本(支持微信端口以及thinkphp)
  4. 参数(条件表)灵活配置GS01/GS02/GS03
  5. 新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows)
  6. linux 下查找大于100M的文件
  7. 微信wap开发,页面显示元素不全-微信开发(asp.net)
  8. 自己做的demo---关于java控制台输入跟类型转化跟处理异常的demo
  9. eclipse主题插件
  10. python几个特别函数map filter reduce lambda
  11. 支持向量机SVM(Support Vector Machine)
  12. ADRC-active disturbance rejection control-自抗扰控制器
  13. Vue(小案例_vue+axios仿手机app)_购物车
  14. Java多线程中static变量的使用
  15. 学习 Spring (五) Aware 接口
  16. android handlerThread
  17. 解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误
  18. 算法笔记--java的BigInteger类及BigDecimal类
  19. MTCNN 实现人脸识别
  20. haproxy入门 (作用: 高可用性,负载平衡和用于TCP和基于http的应用程序的代理)

热门文章

  1. 220501 T1 困难的图论 (tarjan 点双)
  2. P7800 [COCI2015-2016#6] PAROVI 方法记录
  3. Morris 遍历实现二叉树的遍历
  4. JDBC数据库编程(java实训报告)
  5. Dubbo-聊聊注册中心的设计
  6. 测试架构师CAP原理(最简单)
  7. 《HelloGitHub》第 79 期
  8. 浅谈API和SDK的区别
  9. 两个行内元素在一起,会出现一定的间距,即使将border、padding、margin都设置为零也无济于事,那么怎么才能去除这些间距呢?
  10. Adobe Acrobat Pro 2021 for mac安装教程,完美使用!!!