# VFP轻松搞定BS的增删查改,新世界的大门就此打开,你也可以
开发环境: 1.VFP SP2 7423 2.祺佑三层开发框架
# 前端HTML页面设计-人员信息维护-新增
界面如图,
输入姓名和年龄之后,点击保存,页面显示保存成功。
# 前端HTML页面代码
<form action="ctl_ryxx_edit.fsp">
姓名<input type="text" name="name" value="">
年龄<input type="text" name="age" value="">
<input type="hidden" name="ispostback" value="1">
<input type="submit" value="保存" />
<input type="reset" value="撤消" />
</form>
1
2
3
4
5
6
7
2
3
4
5
6
7
在这里猫猫多加了一下隐藏文本框,这个框的name value是可以被提交的
ispostback的作用 把它提交给后端,后端就可以区分是第一次加载,还是第二次加载了。 怎么区分呢? 后端有收到这个值,就说明是第二次加载了,没有则是第一次。 这个参数,实际在ASP.NET的webform技术中也有,作用一模一样。不要以为其它技术就一定很先进。
# 后端VFP代码
运行执行效果
# 人员信息维护-修改
思路如下:
- 第一次加载,传入id值,根据id值加载各项字段值
- 保存之后,根据id值,写入数据表
- 最后在页面显示保存成功
(新增和修改做在一个页面中)
# 前端HTML页面代码
<form action="ctl_ryxx_edit.fsp">
姓名<input type="text" name="name" value="<%=u(name)%>">
年龄<input type="text" name="age" value="<%=u(age)%>">
id<input type="text" name="id" value="<%=u(id)%>" readonly="true">
<input type="hidden" name="ispostback" value="1">
<input type="submit" value="保存" />
<input type="reset" value="撤消" />
</form>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
设置input的readonly的属性让ID只读,
# 后端VFP代码-加载页面代码
ispostback首次加载是没有值的
# 后端VFP代码-保存代码
注意用id的值来判断是新增,还是修改。
其实私有工作期session类是会自动关闭表的。
执行结果
# 删除的实现
这个最简单,不需要前端HTML页面,只需用GET方式调用即可
ctl_ryxx_del.fsp?id=要删除的ID
注意看地址栏
# 串起增删查改
后端代码调整一下,默认显示所有记录
# VFP后端代码
# 前端HTML代码
<form action="ctl_ryxx.fsp" method="post">
请查询<input type="text" name="tj" value="<%=u(cTj)%>">
<input type="submit" value="查询">
<a href=“ctl_ryxx_edit.fsp”>新增</a>
</form>id 姓名 年龄<br>
<% scan %>
<%=u(id)%> <%=u(name)%> <%=u(age)%>
<a href=“ctl_ryxx_edit.fsp?id=<%=u(id)%>”>修改</a>
<a href="ctl_ryxx_del.fsp?id=<%=u(id)%>">删除</a>
<br /> <% endscan%>
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
修改和删除是利用a 标签 用GET方式调用后端VFP方法
# 完成增删查改
功能执行都没有什么问题, 唯一的问题是,返回只是保存成功,删除成功的字样。我们需要直接返回到查询页面。
# 功能改进,执行成功后,跳转到查询页面
后端FSP执行如下代码,即可通知前端浏览器跳转 HttpRedirect(url, this.iconnid ) url:需要跳转的URL this.iconnid代表当前http连接id(必写)
稍稍改改一下代码
return “保存成功”
改为
HttpRedirect("ctl_ryxx.fsp",this.iconnid)
比较完善的增删查改的页面就完成啦,撒花!