本文实质上讲述的内容是一个数据准备的通用技巧,也是为了接下来的DVWP扩展作准备。对于管理员来说也都是些基础的SharePoint操作,有经验的读者请略过。
前面我们完成了创建网站栏,为网站栏填充数据,创建关系列表,和为关系列表填充数据的工作。但是,你可能非常希望在关系列表中使用标题栏,以使将来的维护工作变得容易些。这是可以理解的,特别是当需要修改其中的某些数据或在将来进行新增数据操作时。有一个唯一标识的标题会省很多事。
可以通过两种方式来实现:
1、创建一个工作流,当列表项创建好后,自动拼接父项和子项生成一个标题。
问题:这种方式对于我们通过复制/粘贴填充多行数据(像上一篇博文中那样)的场景来说不适用。因为当其中一块数据粘贴过来时,该行已经创建,但是另一块数据还是空的。因此“新建项目时自动启动此工作流”将不适用。“只要更改了项目,就自动启动此工作流”的方式需要我们首先检查标题是否已经正确设置,如果为否则修改它,这个操作本事也会除非修改型的工作流本身。这样会把服务器挂起,直到你手动结束该工作流。
显然,这种方式不适合用在初始化批量上数据。但它可以用在将来单条添加数据的场景。特别是你必须手工创建父子关系时(无论如何,理论上是这样的)。
2、另一个可以很快想到的方法是在数据表视图中创建一个计算列,迅速将两者进行拼接。然后只要在标题字段上复制粘贴整个栏即可。
问题:查阅项型的栏在计算栏配置页面中是看不见的。
但是,我们可以使用Excel实现相同的想法。
这正是我们在这篇博文中将要讨论的内容。
更Excellent的方法
运行Excel,我们将找到一种更加容易的方法来填充我们的关系列表。
1、在一个新的工作簿上,在B栏的第一格单元格内输入第一个父项。
在Excel中填写数据的顺序要和在我们列表的数据表视图中的顺序一致
2、回到我们的子列表,选中第一个父项对应的所有子项,然后按Ctrl-C进行复制
3、回到Excel,然后在C栏下按Ctrl-V进行粘贴
4、转到子列表的底部(按Ctrl-下箭头)
5、通过按左箭头,将焦点移到左侧的栏
6、按住Ctrl和Shift键,按上箭头选中该栏中此单元格上的所有单元格,包括第一行中已填写数据的单元格
7、按Ctrl-D向下填充
8、为其他父子重复以上操作。
9、在Excel中移到A1单元格
10、在fx窗口中,输入=CONCATENATE(B1,"-",C1)
11、按回车键后A栏中就得到一个由父和子生成‘标题’。
12、把光标放在B或C栏中,按Ctrl-下箭头转到所输入数据的底部。然后按左箭头移到A栏。
13、按住Ctrl和Shift,按上箭头选中所有空白单元格和第一行中包含数据的单元格(这里是A1)。
14、按Ctrl-D向下填充该公式。这样所有的记录就都得到了一个描述性质的标题
15、点一下A1。按住Ctrl和Shift,按右箭头,然后按下箭头。按Ctrl-C复制所有数据。
16、回到关系列表,点一下标题下面的第一个单元格(光标应该处于不可见状态,只是出现高亮的外框)
17、按Ctrl-V粘贴整个关系列表的数据。
实现级联
无论你是用这种方法还是用上一次介绍的方法,现在我们都可以开始用jQuery实现控件的级联了,在下一次扩展DVWP系列中我们就会介绍具体的实现。
参考资料