# 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

在这里猫猫多加了一下隐藏文本框,这个框的name value是可以被提交的

ispostback的作用 把它提交给后端,后端就可以区分是第一次加载,还是第二次加载了。 怎么区分呢? 后端有收到这个值,就说明是第二次加载了,没有则是第一次。 这个参数,实际在ASP.NET的webform技术中也有,作用一模一样。不要以为其它技术就一定很先进。

# 后端VFP代码

VFP代码

运行执行效果

执行效果

# 人员信息维护-修改

思路如下:

  1. 第一次加载,传入id值,根据id值加载各项字段值
  2. 保存之后,根据id值,写入数据表
  3. 最后在页面显示保存成功

(新增和修改做在一个页面中)

# 前端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

设置input的readonly的属性让ID只读,

# 后端VFP代码-加载页面代码

加载页面代码 ispostback首次加载是没有值的

# 后端VFP代码-保存代码

保存代码 注意用id的值来判断是新增,还是修改。 其实私有工作期session类是会自动关闭表的。

执行结果

执行结果

# 删除的实现

这个最简单,不需要前端HTML页面,只需用GET方式调用即可 ctl_ryxx_del.fsp?id=要删除的ID VFP删除代码

注意看地址栏

执行结果

# 串起增删查改

增删查改

后端代码调整一下,默认显示所有记录

# 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

修改和删除是利用a 标签 用GET方式调用后端VFP方法

# 完成增删查改

功能执行都没有什么问题, 唯一的问题是,返回只是保存成功,删除成功的字样。我们需要直接返回到查询页面。

# 功能改进,执行成功后,跳转到查询页面

后端FSP执行如下代码,即可通知前端浏览器跳转 HttpRedirect(url, this.iconnid ) url:需要跳转的URL this.iconnid代表当前http连接id(必写)

稍稍改改一下代码

return “保存成功” 改为 HttpRedirect("ctl_ryxx.fsp",this.iconnid) 比较完善的增删查改的页面就完成啦,撒花!