SharePoint 2013列表 - 项目上的工具提示

时间:2014-09-23 20:32:33

标签: javascript jquery sharepoint sharepoint-2013

我们拥有包含大量列的大型SharePoint列表。我们的用户忘记了他们正在查看哪些单元格,因为滚动后标题会消失(无法像Excel一样冻结标题)。

我们想尝试将工具提示添加到单元格项目中,因此当它们悬停在单元格项目上时,将显示带有列名称的工具提示。

有没有人曾尝试过这样做过?

我有以下代码,它最初在加载时起作用,但在用户对列表进行排序,过滤或切换到编辑模式后停止工作:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
jQuery(
function() 
{
    $('td').hover
    (
    function() 
    {
        var idx = jQuery(this).parent().children().index(jQuery(this));
        jQuery(this).attr('title',jQuery(this).parent().parent().parent().find('th').eq(idx).text());
        jQuery('div.ms-core-brandingText').html(jQuery(this).parent().parent().parent().find('th').eq(idx).text());
    }
    )
}
);                         
</script>

4 个答案:

答案 0 :(得分:1)

您的代码停止运行,因为SharePoint会重新加载列表内容。将客户端脚本添加到SharePoint页面时,这是一个常见问题。

首先,您实际上应该能够使用冻结标题呈现视图。是的,它不是开箱即用的,但有第三方数据表工具可用。

另一种选择是通过Client Side Rendering选项包含您的代码。这是一个广泛的主题,所以可能第一步是谷歌。

答案 1 :(得分:0)

好的,靠近,使用CSR而不仅仅是jQuery。这有效,但需要手动指定每个字段。正在寻找一种方法将其应用于视图中的每个字段。

<script type="text/javascript">
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
        Templates: {
            Fields: {
                'Comments': {
                    'View': function (ctx) {
                        return String.format('<span title="{0}">{1}</span>', this.FieldTitle, ctx.CurrentItem.Comments);
                    }
                },
                'Name': {
                    'View': function (ctx) {
                        return String.format('<span title="{0}">{1}</span>', this.FieldTitle, ctx.CurrentItem.Name);
                    }
                }
            }
        }
    });

答案 2 :(得分:0)

自从应用过滤/排序后,就会重新加载列表视图。

如何在SharePoint 2013中悬停列表项

以下函数可用于在SharePoint 2013中悬停列表项单元格:

function hoverListItems()
{
  $('tr.ms-itmhover td').hover(
    function() {
       var $td = $(this);
       var $th = $td.closest('table').find('th').eq($td.index());
       $td.attr('title',$th.text());
    }
  );  
}

由于在SharePoint 2013中,客户端呈现(CSR)是默认呈现模式,下面的示例演示了如何使用{{1}注册hoverListItem函数事件

OnPostRender
  

注意:使用指定的技术List Item hover也可以使用   应用排序/过滤。

参考

Introduction to Client-Side Rendering in SharePoint 2013

答案 3 :(得分:0)

工具提示解决方法:

我一直在使用的解决方案是一个简单的非HTML解决方案。我只是创建一个项目的链接;插入它自己的地址(这样它就不会去任何地方);然后在新的LINK选项卡下,在“描述”框中键入所需的提示。

保存页面,然后尝试将鼠标悬停在新链接上,voilà

希望有所帮助!