定制";添加新项目";用于从查询字符串中提取参数的Sharepoint 2013列表中的表单

定制";添加新项目";用于从查询字符串中提取参数的Sharepoint 2013列表中的表单,sharepoint,sharepoint-2013,sharepoint-designer,Sharepoint,Sharepoint 2013,Sharepoint Designer,我想自定义sharepoint列表中的“添加新项目”表单,以提取查询字符串参数并自动将其设置为新项目中的一个查找字段。我在Sharepoint 2010中找到了一个完美的教程(),介绍了如何在Sharepoint Designer 2010中实现这一点,但设计模式在2013年被Designer删除,因此该教程没有多大用处 因此,基本上我要问的是,如何在Sharepoint Designer 2013中提取查询字符串值?您应该能够轻松地做到这一点,但要使用javascript。在新表单中添加js引

我想自定义sharepoint列表中的“添加新项目”表单,以提取查询字符串参数并自动将其设置为新项目中的一个查找字段。我在Sharepoint 2010中找到了一个完美的教程(),介绍了如何在Sharepoint Designer 2010中实现这一点,但设计模式在2013年被Designer删除,因此该教程没有多大用处


因此,基本上我要问的是,如何在Sharepoint Designer 2013中提取查询字符串值?

您应该能够轻松地做到这一点,但要使用javascript。在新表单中添加js引用

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));}




$(document).ready(function(){
var paramVal = getParameterByName('ParamName');
$(".ms-formbody input[title='Title']").val(paramVal);

});

您应该能够轻松地做到这一点,但要使用javascript。在新表单中添加js引用

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));}




$(document).ready(function(){
var paramVal = getParameterByName('ParamName');
$(".ms-formbody input[title='Title']").val(paramVal);

});

您应该能够轻松地做到这一点,但要使用javascript。在新表单中添加js引用

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));}




$(document).ready(function(){
var paramVal = getParameterByName('ParamName');
$(".ms-formbody input[title='Title']").val(paramVal);

});

您应该能够轻松地做到这一点,但要使用javascript。在新表单中添加js引用

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));}




$(document).ready(function(){
var paramVal = getParameterByName('ParamName');
$(".ms-formbody input[title='Title']").val(paramVal);

});

除了通过XSLT自定义列表视图和表单外,SharePoint 2013还引入了客户端呈现(CSR)技术。作为介绍,请阅读本文

由于CSR是SharePoint 2013中的默认呈现模式,因此我建议使用此方法自定义新表单页面

解决方案 假设任务列表包含
任务类别
查找字段

然后,可以使用以下呈现模板设置从名为
cat
的查询字符串参数检索的
TaskCategory
查找字段值

(function () {
    var ctx = {};
    ctx.Templates = {};
    ctx.Templates.Fields = {
        'TaskCategory': {
            'NewForm': renderTaskCategory
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();


function renderTaskCategory(ctx) {
    var catId = GetUrlKeyValue('cat'); //extract cat parameter from a query string 
    ctx.CurrentFieldValue =  catId; //set lookup field value 
    return SPFieldLookup_Edit(ctx); //default template for rendering Lookup field control
}
要点:

  • 查找字段值的指定格式为:
    LookupId
  • GetUrlKeyValue
    是一个特定于SharePoint的函数,用于 从查询字符串中提取参数
如何应用更改 为了应用更改,我们需要设置XLV web部件的
JSLink
属性:

  • 首先,让我们保存这个JS模板并将其命名为
    Tasks.JS
    。然后将指定的文件上载到SharePoint
    网站资产
    库中
  • 在编辑模式下打开新表单页并转到web部件属性
  • Miscellaneous
    JSLink
    属性下查找并指定其值:
    ~sitecolection/SiteAssets/Task.js
    如下图所示
结果

除了通过XSLT自定义列表视图和表单外,SharePoint 2013还引入了客户端呈现(CSR)技术。作为介绍,请阅读本文

由于CSR是SharePoint 2013中的默认呈现模式,因此我建议使用此方法自定义新表单页面

解决方案 假设任务列表包含
任务类别
查找字段

然后,可以使用以下呈现模板设置从名为
cat
的查询字符串参数检索的
TaskCategory
查找字段值

(function () {
    var ctx = {};
    ctx.Templates = {};
    ctx.Templates.Fields = {
        'TaskCategory': {
            'NewForm': renderTaskCategory
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();


function renderTaskCategory(ctx) {
    var catId = GetUrlKeyValue('cat'); //extract cat parameter from a query string 
    ctx.CurrentFieldValue =  catId; //set lookup field value 
    return SPFieldLookup_Edit(ctx); //default template for rendering Lookup field control
}
要点:

  • 查找字段值的指定格式为:
    LookupId
  • GetUrlKeyValue
    是一个特定于SharePoint的函数,用于 从查询字符串中提取参数
如何应用更改 为了应用更改,我们需要设置XLV web部件的
JSLink
属性:

  • 首先,让我们保存这个JS模板并将其命名为
    Tasks.JS
    。然后将指定的文件上载到SharePoint
    网站资产
    库中
  • 在编辑模式下打开新表单页并转到web部件属性
  • Miscellaneous
    JSLink
    属性下查找并指定其值:
    ~sitecolection/SiteAssets/Task.js
    如下图所示
结果

除了通过XSLT自定义列表视图和表单外,SharePoint 2013还引入了客户端呈现(CSR)技术。作为介绍,请阅读本文

由于CSR是SharePoint 2013中的默认呈现模式,因此我建议使用此方法自定义新表单页面

解决方案 假设任务列表包含
任务类别
查找字段

然后,可以使用以下呈现模板设置从名为
cat
的查询字符串参数检索的
TaskCategory
查找字段值

(function () {
    var ctx = {};
    ctx.Templates = {};
    ctx.Templates.Fields = {
        'TaskCategory': {
            'NewForm': renderTaskCategory
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();


function renderTaskCategory(ctx) {
    var catId = GetUrlKeyValue('cat'); //extract cat parameter from a query string 
    ctx.CurrentFieldValue =  catId; //set lookup field value 
    return SPFieldLookup_Edit(ctx); //default template for rendering Lookup field control
}
要点:

  • 查找字段值的指定格式为:
    LookupId
  • GetUrlKeyValue
    是一个特定于SharePoint的函数,用于 从查询字符串中提取参数
如何应用更改 为了应用更改,我们需要设置XLV web部件的
JSLink
属性:

  • 首先,让我们保存这个JS模板并将其命名为
    Tasks.JS
    。然后将指定的文件上载到SharePoint
    网站资产
    库中
  • 在编辑模式下打开新表单页并转到web部件属性
  • Miscellaneous
    JSLink
    属性下查找并指定其值:
    ~sitecolection/SiteAssets/Task.js
    如下图所示
结果

除了通过XSLT自定义列表视图和表单外,SharePoint 2013还引入了客户端呈现(CSR)技术。作为介绍,请阅读本文

由于CSR是SharePoint 2013中的默认呈现模式,因此我建议使用此方法自定义新表单页面

解决方案 假设任务列表包含
任务类别
查找字段

然后,可以使用以下呈现模板设置从名为
cat
的查询字符串参数检索的
TaskCategory
查找字段值

(function () {
    var ctx = {};
    ctx.Templates = {};
    ctx.Templates.Fields = {
        'TaskCategory': {
            'NewForm': renderTaskCategory
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();


function renderTaskCategory(ctx) {
    var catId = GetUrlKeyValue('cat'); //extract cat parameter from a query string 
    ctx.CurrentFieldValue =  catId; //set lookup field value 
    return SPFieldLookup_Edit(ctx); //default template for rendering Lookup field control
}
要点:

  • 查找字段值的指定格式为:
    LookupId
  • GetUrlKeyValue
    是一个特定于SharePoint的函数,用于 从查询字符串中提取参数
如何应用更改