You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SharePoint 2013级联下拉菜单无法正常工作问题求助

排查SharePoint SPServices级联下拉失效问题

我来帮你一步步定位这个级联下拉的故障点,结合你的列表结构和代码,咱们从几个核心环节入手:

1. 核对字段名称的准确性(最常见的坑)

你代码里的relationshipListParentColumn参数填的是"Clientes-Canal",这大概率是问题所在——这个参数需要的是Clientes-Subsegmentacion列表中,那个关联到Clientes-Canal的查阅字段的内部名称,而不是父列表的名字。

举个例子:如果你的Clientes-Subsegmentacion列表里,用来关联Clientes-Canal的查阅字段显示标题是Canal,那它的内部名称通常也是Canal(你可以在列表设置里点击该字段,从地址栏的Field=xxx部分看到内部名)。

同时还要确认:

  • 主列表Clientes里的parentColumnCanal)和childColumnSubsegmentacion)的内部名称是否和代码里一致,有时候显示标题和内部名会因为空格、特殊字符出现差异。

2. 检查查阅字段的配置细节

  • 存储类型验证:Clientes-Subsegmentacion的Canal查阅字段,以及主列表Clientes的Canal字段,都需要设置为存储项ID(而不是显示值)。SPServices的级联逻辑依赖查阅字段存储的父项ID来匹配数据,如果存储的是显示值,级联会完全失效。
  • 关联目标确认:确保Clientes-Subsegmentacion的Canal字段确实关联到Clientes-Canal列表的Title字段,且“在表单中显示的字段”选择的是Title

3. 验证脚本加载的正确性

  • 你必须先加载jQuery,再加载SPServices脚本,顺序不能搞反,比如:
    <script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="/sites/你的站点地址/SiteAssets/jquery.SPServices.min.js"></script>
    
  • 确认SPServices版本和你的SharePoint环境兼容(比如SP Online/2013/2016),旧版本的SPServices在新环境中可能存在兼容性问题。

4. 利用调试模式抓错误信息

你已经开启了debug: true,现在打开浏览器开发者工具(按F12)切换到Console标签页,刷新表单页面:

  • 如果看到$().SPServices is not a function,说明SPServices脚本没加载成功;
  • 如果提示找不到某个字段,那就是字段名称参数填错了;
  • 其他报错信息也能直接指向问题根源。

5. 权限与数据验证

  • 确保当前登录用户对Clientes-Canal和Clientes-Subsegmentacion列表有读取权限,SPServices需要读取这两个列表的数据来生成级联选项;
  • 检查Clientes-Subsegmentacion里有没有对应的数据——比如某个Canal下有没有关联的Subsegmentacion项,如果没有数据,下拉框自然不会有选项。

修正后的代码示例(假设字段内部名正确)

$(document).ready(function () {
  $().SPServices.SPCascadeDropdowns({
    relationshipList: "Clientes-Subsegmentacion",
    relationshipListParentColumn: "Canal", // Clientes-Subsegmentacion中关联父列表的查阅字段内部名
    relationshipListChildColumn: "Title",
    parentColumn: "Canal", // 主列表Clientes中Canal字段的内部名
    childColumn: "Subsegmentacion", // 主列表Clientes中Subsegmentacion字段的内部名
    debug: true
  });
});

内容的提问来源于stack exchange,提问作者Punto IT

火山引擎 最新活动