修改内容
1.增加列表设置,隐藏Aid字段操作
SharePoint 列表之间相互关联
例如两张列表之间的父子关系。
思路如下:
列表中新增列表项后会有一个唯一的ID,我们获取到该ID赋予子表即可将两张列表相互关联。
效果图如下:
实现起来也是很简单的。下面来动手实践下。
首先我们要定位到显示页面。也就是DispForm.aspx
因为只有显示页面和编辑页面才有会有列表项ID。新建页面是没有ID生成的。
新建两张列表。。。
注意:新建列表后,需要对列表进行设置,添加Aid栏(列),为了页面好看可以设置成隐藏。
点开列表设置=>高级设置=>启用内容管理
点击项目后进入内容类型
点击Aid栏(列)后如下图
页面设置基本到此结束。下面需要在spd里手动去操作一些东西。
打开SharePoint Designer(SPD) 找到父列表的显示页面
在webpart下新增一个按钮。
SPD13取消了视图。。。
但是我们可以用F12 去查看位置。
效果如下图:
添加JS.
这里的JS作用是获取当前URL 截取到ID 通过弹窗传到子表的新建页面。效果如下:
在子表的NewForm.aspx 页面 添加JS
JS根据当前URL截取到ID,然后赋予到子表的Aid字段。
整个新建逻辑做完后,我们需要考虑的是如何显示呢?
接下来我们回到父表的显示页面 DispForm.aspx
在按钮下面插入 显示项目表单
然后我们可以发现SPD上多出了个数据视图工具
在选项下面,我们可以设置添加删除列,分页,等等。。。
到这一步的时候我们还需要把显示数据筛选一遍
我们新建一个参数,取名为Aid,参数源为查询字符串,查询字符串的变量为ID
然后我们发现在代码里面多出了一行
我们设置筛选条件
域名的Aid为 子表的新建字段Aid.
值为我们前面所建的参数Aid。即查询字符串ID
整个功能就完成了。
唯一的代码就是两段JS了
DispForm.aspx页面的JS
注意 URL为子表 新建项目的URL 加上我们要传过去的Aid
JS代码写的比较随意。。。
function show()
{
var a=location.search;
a = a.split("?");
a = a[1].split("&");
a = a[0].split("=");
//alert(a[1]); var options = {
url: "http://spserver/IT_center/Lists/B/NewForm.aspx?Source=http%3A%2F%2Fspserver%2FIT%5Fcenter%2FLists%2FB%2FAllItems%2Easpx&RootFolder=&Aid="+a[1],
width: 600,
height: 480,
title: "新增列"
};
SP.UI.ModalDialog.showModalDialog(options); } </script>
子表NewForm.aspx页面的JS
根据当前URL截取到ID
将ID值赋予到Aid字段。
<script type="text/javascript"> window.onload=function()//
{
show();
} function show()
{
var a=location.search;
a = a.split("&");
a = a[2].split("="); document.getElementById("Aid_43bc1ca7-76dd-4ea6-ae50-da655f99d378_$TextField").value=a[1];
document.getElementById("Aid_43bc1ca7-76dd-4ea6-ae50-da655f99d378_$TextField").disabled = true;
} </script>