SharePoint 2013,在对列表进行排序后,在模式对话框中打开另一个共享点列表项失败

时间:2014-01-14 16:45:33

标签: javascript jquery sharepoint modal-dialog

对不起,很长的帖子。这一直在杀我。我有这个脚本在SharePoint 2010(在线)中运行得非常好,基本上我有一个源自定义列表(列表A),其中包含一个超链接列和一个带有标题和我的名字的目的地列表。

源列表(列表A)看起来像这两列

标题测试链接

链接1

B Link 2

C Link 3

这些链接中的每一个都链接到目标列表中的实际列表项,例如,链接1是/ sites / 2013DevSite / Lists / Destination%20List / EditForm.aspx?ID = 1

所以基本上我希望任何时候单击链接指向另一个列表的项目在模式对话框中打开,下面的脚本在SharePoint 2010中完全正常(在线)

<script language="javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script language ="javascript" type="text/javascript">   

jQuery(document).ready(function() {
jQuery('a[href*="EditForm.aspx"]').each(function (i, e) {
// Store the A tag's current href in a variable
var currentHref = jQuery(e).attr('href');
jQuery(e).attr({
'href': 'javascript:void(0);', 
// Use the stored href as argument for the ShowInModal functions parameter.
'onclick': 'ShowInModal("' + currentHref + '");'

});
});

}); 

function ShowInModal(href) {
SP.UI.ModalDialog.showModalDialog({title: "Edit Item", url: href});    
};
</script>

所有这一切都是找到特定值Editform.aspx的href标签,pop模式在SP 2010在线工作。因此,网站页面的设计方式是有一个内容编辑器Web部件,其中包含对此javascript文件的引用,并且共享点列表位于其下方,这在SP 2010中的模态窗口中完美地打开。

自从迁移到2013年以来,这就是确实发生的事情

1。)当你进入网站页面时,模态有效,

2。)如果您对源列表中的标题或测试链接列进行过滤或排序(假设您选择了值A),则脚本根本不会触发,如果我将鼠标悬停在超链接上,那么超链接显示并且不会打开模式弹出窗口中的超链接。 - 这很重要,因为我希望能够对特定项目进行排序......

有人可以让我知道我做错了什么,感谢所有的帮助。

我再一次尝试使用Jquery

从另一个列表中打开一个sharepoint列表项

2 个答案:

答案 0 :(得分:0)

过滤列表后,您是否检查过JavaScript仍在页面中?

我不使用Sharepoint 2013,但过滤的内容可能是由AJAX加载的 - 这样链接就不会自动绑定。在这种情况下,您的代码应该是不同的(这是我建议您编写它的方式):

jQuery(document).ready(function() {
  jQuery('body').on('a[href*="EditForm.aspx"]', 'click', function(event) {
    event.preventDefault();
    alert("OK");
    ShowInModal($(this).attr("href"))
  });
});

这样,页面中的任何新链接都会被jQuery自动绑定。

答案 1 :(得分:0)

Aym,所以我使用你提到的原理尝试了这个简单的代码

jQuery(document).ready(function() { // When jQuery is ready, continue
 jQuery('a[href*="EditForm.aspx"]').click(function (event) {
  alert("Hello");
  event.preventDefault();
 });
});

第一次完美我收到消息并且event.preventdefault有效并且没有进入目的地页面,但是一旦我对共享点列表进行排序,所有的赌注都会关闭..这真是太令人沮丧了......我只是在冒险