选定父列表项的默认新子列表项

时间:2011-02-14 22:36:19

标签: sharepoint-2010 default parent-child

我有一个名为Projects的Sharepoint列表和另一个名为Tasks的列表。 “任务”列表具有项目列表标题的查找字段,以便我可以使用“插入相关列表”选项。插入相关列表后,选择项目将仅显示与该项目关联的任务 当添加新任务时,如何让“任务”列表将项目查找值默认为当前所选项目?

1 个答案:

答案 0 :(得分:1)

基于Corey Martins related lists prefill scripts我能够让项目自动选择列表。我修改了脚本以添加一些其他功能:

- 使用弹出的新项目对话框而不是切换到新的项目页面 - 适用于公告列表和文档库(文档库需要将javascript添加到编辑表单而不是新表单)。
- 将填充首次加载列表时没有发生的SelectedID URL参数。

以下是我修改过的脚本:
RLHelper-ParentDisplayForm.js

/*
SharePoint 2010 Related List Prefill Version 1.2
Call JQuery and this file from the parent list's view item page that contains related list web parts.
Instructions: http://code.google.com/p/sp2010-related-list-prefill/
RLHelper-ParentDisplayForm.js
*/
function getQuerystring(ji) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
            return ft[1];
        }
    }
}

_spBodyOnLoadFunctionNames.push("updateSelection");
function updateSelection() {
    var selId = getQuerystring("SelectedID");
    if (isNaN(selId) === true) {
        SelectField('VIEW GUID GOES HERE','1');
    }
    return false;
}

RLHelper-ChildNewForm.js

/*
SharePoint 2010 Related List Pre-fill Version 1.2
Call JQuery and this file from the child list's new item page.
Instructions: http://code.google.com/p/sp2010-related-list-prefill/

RLHelper-ChildNewForm.js
*/
function getQuerystring(ji, fromParent) {
    var hu;
    if(fromParent){
        hu = parent.window.location.search.substring(1);
    }
    else{
        hu = window.location.search.substring(1);
    }
    var gy = hu.split("&");
    var i = 0;
    for (i=0;i<gy.length;i++) {
        var ft = gy[i].split("=");
        if (ft[0] === ji) {
            return ft[1];
        }
    }
}

function fillfromParent(childfield) {
    var dlg = getQuerystring("IsDlg", false);
    if (isNaN(dlg) === false && dlg == 1) {
        var SelId = getQuerystring("SelectedID", true);
        var parentid = SelId.match(/\d+$/);
        if (isNaN(parentid) === false && parentid > 0) {
            $("select[title="+childfield+"]").val(parentid);
        }
    }
}