对SharePoint列表进行排序/筛选后,jQuery DOM更改将消失
我已将jQuery代码添加到SharePoint脚本编辑器Web部件,该部件采用文档名(例如my_doc.pdf)将域添加到其中以创建完整路径,然后包装对SharePoint列表进行排序/筛选后,jQuery DOM更改将消失,jquery,sorting,dom,sharepoint,sharepoint-2013,Jquery,Sorting,Dom,Sharepoint,Sharepoint 2013,我已将jQuery代码添加到SharePoint脚本编辑器Web部件,该部件采用文档名(例如my_doc.pdf)将域添加到其中以创建完整路径,然后包装”; }); } 事先非常感谢。文本太长,无法发表评论,所以我们开始吧 这是一篇关于JSLink的好文章,其中有一些例子 它非常简单和直接-不需要脚本编辑器或其他奇怪的东西。 假设您想要更改“MyURL”字段呈现 // myrendering.js (function () { var ctx = {}; ctx.Temp
”;
});
}
事先非常感谢。文本太长,无法发表评论,所以我们开始吧 这是一篇关于JSLink的好文章,其中有一些例子 它非常简单和直接-不需要脚本编辑器或其他奇怪的东西。 假设您想要更改“MyURL”字段呈现
// myrendering.js
(function () {
var ctx = {};
ctx.Templates = {};
ctx.Templates.Fields = { // you can override many things, but in this case we are going for the Fields
// Apply the new rendering for MyURL field on List View
// But you can add as many fields as you like
"MyURL": { "View": myUrlFieldTemplate }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();
// This function provides the rendering logic for list view
// Instead of default SharePoint url field you will get whatever you return from this function
function myUrlFieldTemplate(ctx) {
// put debugger here to see whats going on - it will help you alot
var myUrl = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; // get field value
return "<a target='_blank' href='" + myUrl + "'>Im JSLink rendered field!</a>";
// or you can return whatever you want, for example
// return "<button>Im button now!</button>";
// and your field "MyURL" will become a button in a list view
}
//end
//myrendering.js
(函数(){
var ctx={};
模板={};
ctx.Templates.Fields={//您可以覆盖许多内容,但在本例中,我们将使用字段
//在列表视图上为MyURL字段应用新的呈现
//但您可以添加任意数量的字段
“MyURL”:{“视图”:myUrlFieldTemplate}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();
//此函数提供列表视图的呈现逻辑
//您将获得此函数返回的任何内容,而不是默认的SharePoint url字段
函数myUrlFieldTemplate(ctx){
//把调试器放在这里看看发生了什么-它会帮你很多
var myUrl=ctx.CurrentItem[ctx.CurrentFieldSchema.Name];//获取字段值
返回“”;
//或者你可以返回任何你想要的,例如
//返回“即时通讯按钮现在!”;
//您的字段“MyURL”将成为列表视图中的一个按钮
}
//结束
显然,保持更改的一种方法是在每次hashchange
之后调用函数:
window.addEventListener("hashchange", myFunction, false);
您选择使用脚本编辑器web部件而不是使用内置功能的任何原因?谢谢您的评论。我尝试了JS链接选项,但没有成功,DOM的更改没有出现。你能编辑你的问题以包含你尝试过的代码吗?也许你的方法有一个微妙的问题。再次感谢@Thriggle。我添加了代码。它是什么SharePoint?如果是2013年,那么最好使用上面提到的
JSLink
,只更改某些字段的呈现,而不使用jQuery或附加任何事件。非常感谢@AlexK
window.addEventListener("hashchange", myFunction, false);