SHAREPOINT 2013 列表之间相互关联

 修改内容

1.增加列表设置,隐藏Aid字段操作

 

SharePoint 列表之间相互关联

例如两张列表之间的父子关系。

 

思路如下:

列表中新增列表项后会有一个唯一的ID,我们获取到该ID赋予子表即可将两张列表相互关联。

 

效果图如下:

SHAREPOINT 2013 列表之间相互关联

SHAREPOINT 2013 列表之间相互关联

SHAREPOINT 2013 列表之间相互关联

SHAREPOINT 2013 列表之间相互关联

SHAREPOINT 2013 列表之间相互关联

实现起来也是很简单的。下面来动手实践下。

首先我们要定位到显示页面。也就是DispForm.aspx

因为只有显示页面和编辑页面才有会有列表项ID。新建页面是没有ID生成的。

 

新建两张列表。。。

 

注意:新建列表后,需要对列表进行设置,添加Aid栏(列),为了页面好看可以设置成隐藏。

点开列表设置=>高级设置=>启用内容管理

SHAREPOINT 2013 列表之间相互关联

 

点击项目后进入内容类型

SHAREPOINT 2013 列表之间相互关联 

点击Aid栏(列)后如下图

SHAREPOINT 2013 列表之间相互关联

页面设置基本到此结束。下面需要在spd里手动去操作一些东西。

 

打开SharePoint Designer(SPD) 找到父列表的显示页面

 

在webpart下新增一个按钮。

SPD13取消了视图。。。

但是我们可以用F12 去查看位置。

 

效果如下图:

SHAREPOINT 2013 列表之间相互关联

添加JS.

这里的JS作用是获取当前URL 截取到ID 通过弹窗传到子表的新建页面。效果如下:

SHAREPOINT 2013 列表之间相互关联

在子表的NewForm.aspx 页面 添加JS

JS根据当前URL截取到ID,然后赋予到子表的Aid字段。

SHAREPOINT 2013 列表之间相互关联

整个新建逻辑做完后,我们需要考虑的是如何显示呢?

接下来我们回到父表的显示页面 DispForm.aspx 

SHAREPOINT 2013 列表之间相互关联

在按钮下面插入 显示项目表单

 

然后我们可以发现SPD上多出了个数据视图工具

在选项下面,我们可以设置添加删除列,分页,等等。。。

SHAREPOINT 2013 列表之间相互关联

到这一步的时候我们还需要把显示数据筛选一遍

 

我们新建一个参数,取名为Aid,参数源为查询字符串,查询字符串的变量为ID

SHAREPOINT 2013 列表之间相互关联

然后我们发现在代码里面多出了一行

SHAREPOINT 2013 列表之间相互关联

我们设置筛选条件

SHAREPOINT 2013 列表之间相互关联

 

域名的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>