You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint列表自定义渲染异常咨询:添加图标后列表无法正常访问

修复SharePoint列表图标添加后无法交互的问题

嘿,我瞅了下你的代码,问题核心是你直接替换了整个列表项的渲染模板——原本SharePoint的列表项自带点击跳转、字段布局这些交互和结构,你现在把整个Item模板换成了仅包含标题和图标的字符串,相当于把活的列表变成了死的静态文本,自然没法正常访问啦!

下面是具体的修改方案:

关键修改点

  • 把模板目标从「整个列表项(Item)」改成「仅Title字段」:这样只会自定义标题的显示,保留列表项原有的结构和交互
  • 调整渲染函数,只处理Title字段的输出,不用管整个Item的渲染
  • 移除多余的RenderItemTemplate调用(原代码里这个位置也不对,没起到作用)

修改后的完整代码

<script>
(function () {
    var excludeRows = [0,2,3];
    
    // 仅自定义Title字段的渲染
    function renderTitleField(renderCtx) {
        // 跳过指定行的标题修改
        if(excludeRows.indexOf(renderCtx.CurrentItemIdx) > -1) {
            // 返回默认的Title渲染结果
            return renderCtx.CurrentItem.Title;
        } else {
            // 给标题追加图标,加个间距优化视觉
            return renderCtx.CurrentItem.Title + "<img src='https://example.com/sites/ud07/HRM/Plaatjes/image.png' style='margin-left:8px;' alt='标识图标'/>";
        }
    }

    function registerListRenderer() {
        var context = {};
        context.Templates = {};
        // 针对Title字段设置自定义模板
        context.Templates.Fields = {
            'Title': {
                'View': renderTitleField
            }
        };
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);
    }

    ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js');
})();
</script>

额外优化小细节

  • 给图标加了margin-left样式,让它和标题之间留点间距,看起来更舒服
  • 补充了alt属性,万一图标加载失败也能有文字提示,提升可用性

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:28:15