我希望同一列在不同视图中显示不同的标题,只有一个列表。 所以我在view.aspx中附加了一个jquery脚本。
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
<script type="text/javascript" src="/_layouts/15/Library/js/jquery-1.9.1.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$('[id^=diidSort][id$=company]').text('com');
});
</script>
它可以工作,但当我点击列升序或降序然后刷新页面。专栏 标题恢复为原始文本。我怎么能解决它?
答案 0 :(得分:4)
由于它是SharePoint 2013环境,因此建议采用以下方法:
SharePoint 2013为列表视图引入了client side rendering framework (CSR),允许使用HTML / JavaScript定义SharePoint列表视图的呈现逻辑。
以下示例演示了如何在列表视图中呈现Title
列的自定义标题:
(function () {
function preTaskFormRenderer(renderCtx) {
modifyHeaderData(renderCtx);
}
function modifyHeaderData(renderCtx)
{
var viewTitle = renderCtx.viewTitle;
var linkTitleField = renderCtx.ListSchema.Field[1];
linkTitleField.DisplayName = viewTitle + ':' + linkTitleField.DisplayName;
}
function registerRenderer()
{
var ctxForm = {};
ctxForm.Templates = {};
ctxForm.OnPreRender = preTaskFormRenderer;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctxForm);
}
ExecuteOrDelayUntilScriptLoaded(registerRenderer, 'clienttemplates.js');
})();
TaskForm.js
)上传到
SharePoint Site Assets
库JS Link
组下的Miscellaneous
媒体资源:
~sitecollection/SiteAssets/TaskForm.js
(见图1)
图1. JS Link属性