SharePoint:扩展DVWP - 第12部分:从数据源添加更多表单域
在我们用新的东西替换掉旧的东西前,最好要有一个备份。这不是一种怀旧情结,而是因为有可能会改坏,当你需要回到修改前的状态时,有了之前保存好的备份就会很方便了。
修改了什么?
通过比较当页面加载时的数据和当保存按钮被点击时的数据,我们可以得到被用户修改的信息,然后据此信息做一些我们希望做的事情。在上一篇中,我们学习了有关asp:label控件的使用,虽然标签在表单里是不可编辑的,但却可以使该表单域在表单操作工作流中变得可用。
我们可以从我们的各种数据源中添加任意的栏到表单中,只需用同样的方法将其加成一个标签即可。
在SharePoint Designer(SPD)里:
1、切换到编辑模板
2、在你希望存放该标签的单元格(随便一行)中点击(要确保没有选中该单元格中已经有的表单域,否则该域会被替换。实在没法不选中已有域时,可以在拆分视图中找到该域对应的高亮代码块,然后将光标移到所在TD代码块结束标记前。)
点击单元格(不要放在数据上)。我们将在这个位置添加标签
3、从“数据源详细信息”面板中选择我们需要插入的栏
4、点击“将选择的域插入为...”并选择“带格式的...”->“标签”
5、可以看到设计视图和代码视图中都发生了变化:
6、现在,我们需要将它隐藏掉,通过以下修改...
从:
1 2 3 4 5 | < td class="ms-vb"> < SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="Title" ... /> < SharePoint:FieldDescription runat="server" id="ff1description{$Pos}" FieldName="Title" ControlMode="Edit" /> < asp:Label runat="server" id="ff4{$Pos}" text="{@_x804c__x4f4d__x7f16__x53f7_}"... /> </ td > |
改成:
1 2 3 4 5 6 7 | < td class="ms-vb"> < SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="Title" ... /> < SharePoint:FieldDescription runat="server" id="ff1description{$Pos}" FieldName="Title" ControlMode="Edit" /> < span style="display:none"> < asp:Label runat="server" id="ff4{$Pos}" text="{@_x804c__x4f4d__x7f16__x53f7_}" ... /> </ span > </ td > |
此时的屏幕状态
该标签现在被隐藏起来,但是仍然绑定到数据源,所以在页面加载时还是会显示当前数据。用户没有办法修改它。
隐藏的标签提供了一个在页面加载时数据的快照
为每一个你需要记录修改前状态的栏重复相同的过程。从易于维护角度考虑,将每一个隐藏的标签放在和相应的表单域相同的单元格里对于你将来定位会很有帮助。但是,由于它们都是隐藏的,你也可以将它们一起放在一个span标记里。
下一次:你一直想知道如何使用PreSaveAction()吗?我之前说过还会回到这个话题的。在接下来的扩展DVWP系列中,我们将实际做一些有用的东西出来。
参考资料
SharePoint: Extending the DVWP – Part 12: Adding More Form Fields from the Data
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!