SharePoint:扩展DVWP - 第14部分:用jQuery编写PreSaveAction()实务
2010-09-03 23:28
645 查看
通过前面的学习,我们已经掌握了如何在DVWP中使用PreSaveAction(),并利用jQuery协助我们创建了一些变量,接下让我们将变量的值写到审计列表中。
首先把老的域值(或者说是表单本身的值)作一个记录...
1、栏验证 - 确保你即将写入到数据库中的数据满足一些要求,比如:
i.结束日期在起始日期后面
ii.一个时间段内至少包含x天(或这说天数大于x天)
iii.某个人已经在某个列表中(或在某个列表中不存在)
iv.如果一些可选字段在某些字段填写后会变成必填字段
v.等等
2、添加“您的意思是...?”功能
i.“...要进行修改,但是并不更新有效日期?”
ii.“...要在以后再设置这个日期?”
iii.“...找的是这个名子与此很接近的人?”
iv.“...指这个转换后的结果?或者是指这个最终结果?”
v.等等
3、需要做审计跟踪
4、确认是否要删除
5、查找存储在该列表项中的信息
5、其他你的创意...
下一次:如何在DVWP中使用用户自定义的下拉列表框?网上有些最佳实践,不论你是不是在用DVWP都可能会用到。但如果你需要在你的DVWP中使用级联下拉框,那么你需要提前进行规划。我们将开始着手这一规划,并指出其中可能存在的一些陷阱。
从现在开始接下来的4篇文章中,我们将在DVWP中实现级联下拉列表框功能。相应列表的所有者将在SharePoint列表中管理其内容和相互之间的关系。
参考资料
SharePoint:Extending the DVWP- Part 14:Putting PreSaveAction() to Work with jQuery
使用SharePoint Web服务新建审计记录
Marc的库中的UpdataListItems为我们提供了一种快速记录审计跟踪信息变更的方式。首先把老的域值(或者说是表单本身的值)作一个记录...
...然后,为所有的新(或修改后)纪录重复以上过程。修改FromTo的值为To;注意到我们在这两个过程中使用相同的EffDate(你的需求或许不同)。ChangeType可以自动设置或者基于已有的一些变更计算出来。现在合在一起
尽管你写的代码可能根据你的需求进行了修改,但是到目前为止大致上我们的PreSaveAction()的样子如下所示: function PreSaveAction() { var txtChangeType = "Update"; var txtNewName = $("input[name*=$ff1_]").val(); var txtOldName = $("span[id*=_ff9_]").text(); var txtNewPos = $("input[name*=$ff3_]").val(); var txtOldPos = $("span[id*=_ff11_]").text(); var txtNewShift = $("select[name*=$ff4_]").val(); var txtOldShift = $("span[id*=_ff12_]").text(); var txtNewFTE = $("input[name*=$ff5_]").val(); var txtOldFTE = $("span[id*=_ff13_]").text(); var txtNewGrp = $("input[name*=$ff2_]").val(); var txtOldGrp = $("span[id*=_ff10_]").text(); var txtNewLoc = $("input[name*=$ff6_]").val(); var txtOldLoc = $("span[id*=_ff14_]").text(); var txtEffDate = $("input[name*=$ff7_]").val(); $().SPServices({ operation: "UpdateListItems", async: false, listName: "FTE Change Audit", updates: "<Batch OnError='Continue' PreCalc='TRUE'>" + "<Method ID='1' Cmd='New'>" + "<Field Name='FromTo'>From</Field>" + "<Field Name='Title'>" + txtOldName + "</Field>" + "<Field Name='Location'>" + txtOldLoc + "</Field>" + "<Field Name='Group'>" + txtOldGrp + "</Field>" + "<Field Name='Position'>" + txtOldPos + "</Field>" + "<Field Name='WorkShift'>" + txtOldShift + "</Field>" + "<Field Name='FTE'>" + txtOldFTE + "</Field>" + "<Field Name='EffDate'>" + txtEffDate + "</Field>" + "<Field Name='ChangeType'>" + txtChangeType + "</Field>" + "</Method>" + "</Batch>", completefunc: function(xData, Status) { } }); $().SPServices({ operation: "UpdateListItems", async: false, listName: "FTE Change Audit", updates: "<Batch OnError='Continue' PreCalc='TRUE'>" + "<Method ID='1' Cmd='New'>" + "<Field Name='FromTo'>To</Field>" + "<Field Name='Title'>" + txtNewName + "</Field>" + "<Field Name='Location'>" + txtNewLoc + "</Field>" + "<Field Name='Group'>" + txtNewGrp + "</Field>" + "<Field Name='Position'>" + txtNewPos + "</Field>" + "<Field Name='WorkShift'>" + txtNewShift + "</Field>" + "<Field Name='FTE'>" + txtNewFTE + "</Field>" + "<Field Name='EffDate'>" + txtEffDate + "</Field>" + "<Field Name='ChangeType'>" + txtChangeType + "</Field>" + "</Method>" + "</Batch>", completefunc: function(xData, Status) { } }); return true; };
其他用途
你可以通过PreSaveAction()做什么?1、栏验证 - 确保你即将写入到数据库中的数据满足一些要求,比如:
i.结束日期在起始日期后面
ii.一个时间段内至少包含x天(或这说天数大于x天)
iii.某个人已经在某个列表中(或在某个列表中不存在)
iv.如果一些可选字段在某些字段填写后会变成必填字段
v.等等
2、添加“您的意思是...?”功能
i.“...要进行修改,但是并不更新有效日期?”
ii.“...要在以后再设置这个日期?”
iii.“...找的是这个名子与此很接近的人?”
iv.“...指这个转换后的结果?或者是指这个最终结果?”
v.等等
3、需要做审计跟踪
4、确认是否要删除
5、查找存储在该列表项中的信息
5、其他你的创意...
想了解更多应用场景?
不妨搜索一下PreSaveAction(),看看其他博文作者有什么好的想法。下一次:如何在DVWP中使用用户自定义的下拉列表框?网上有些最佳实践,不论你是不是在用DVWP都可能会用到。但如果你需要在你的DVWP中使用级联下拉框,那么你需要提前进行规划。我们将开始着手这一规划,并指出其中可能存在的一些陷阱。
从现在开始接下来的4篇文章中,我们将在DVWP中实现级联下拉列表框功能。相应列表的所有者将在SharePoint列表中管理其内容和相互之间的关系。
参考资料
SharePoint:Extending the DVWP- Part 14:Putting PreSaveAction() to Work with jQuery
相关文章推荐
- SharePoint:扩展DVWP - 第13部分:PreSaveAction()实务——创建变量
- SharePoint:扩展DVWP - 第31部分:在Insert模版上通过jQuery填写默认值
- SharePoint:扩展DVWP - 第20部分:使用jQuery实现级联下拉框
- SharePoint:扩展DVWP - 第22部分:jQuery实现基于其他字段自动创建标题
- SharePoint:扩展DVWP - 第5部分:在保存操作提交前做些事情——PreSaveAction()
- SharePoint:扩展DVWP - 第9部分:噢~设置处理器样式失败
- SharePoint:扩展DVWP - 第26部分:修改编辑模版
- SharePoint:扩展DVWP - 第35部分:把所有的内容串起来
- SharePoint:扩展DVWP - 第27部分:为DVWP添加一个备用编辑模版
- SharePoint:扩展DVWP - 第29部分:修改Remove模版上的表单操作工作流
- SharePoint:扩展DVWP - 第18部分:可维护的下拉框 - 填充关系列表(上)
- SharePoint:扩展DVWP - 第19部分:可维护的下拉框 - 填充关系列表(下)
- SharePoint:扩展DVWP - 第23部分:工作流实现基于其他字段自动创建标题
- SharePoint:扩展DVWP - 第32部分:多DVWP情况下为Insert模版填写默认值
- SharePoint:扩展DVWP - 第30部分:用EasyTabs和筛选使DVWP的数据更具条理
- SharePoint:扩展DVWP - 第1部分:布局增强 – 在默认值模板和编辑模板中重新排列栏
- SharePoint:扩展DVWP - 赠送部分:当“找不到匹配项”时修复Insert表单操作
- SharePoint:扩展DVWP - 第33部分:修改DVWP中的合计和分类汇总
- SharePoint:扩展DVWP - 第4部分:将DVWP操作链接转为按钮
- SharePoint:扩展DVWP - 第8部分:挂接了工作流列表表单操作