在SharePoint中更改编辑控制块(ECB)链接URL

时间:2009-05-28 18:49:34

标签: sharepoint wss-3.0

有没有办法动态更改与WSS 3.0中的ECB菜单关联的超链接?例如,我有一个包含2个字段的列表。一个字段是隐藏的,是一个链接,另一个是具有ECB菜单的标题字段。标题字段当前链接到项目的视图页面 - 但我们希望它链接到链接字段的URL。这可能吗?


更新 - 2009年5月29日上午9点 到目前为止我有这个。请参阅此TechNet post

<script type="text/javascript">
var url = 'GoTo.aspx?ListTitle='+ctx.ListTitle;
url += '&ListName='+ctx.listName;
url += '&ListTemplate='+ctx.listTemplate;
url += '&listBaseType='+ctx.listBaseType;
url += '&view='+ctx.view;
url += '&';

var a = document.getElementsByTagName('a');
for(i=0;i<=a.length -1;i++)
{
   a[i].href=a[i].href.replace('DispForm.aspx?',url);
}
</script>

这给了我一个像这样的链接(格式化,以便更容易看到):

GoTo.aspx
?ListTitle=MyList
&ListName={082BB11C-1941-4906-AAE9-5F2EBFBF052B}
&ListTemplate=100
&listBaseType=0
&view={9ABE2B07-2B47-4390-9969-258F00E0812C}
&ID=1

我现在的问题是,网格中的行为每个项目提供了上面的ID属性,但如果我更改视图或进行任何过滤,您可以看到ID实际上只是行号。我可以在这里获得实际项目的GUID吗?

如果我可以获得该项目的ID,我可以将其与列表ID一起发送到应用程序页面,该页面将从列表中的字段获取正确的URL并将用户转发到正确的站点。

3 个答案:

答案 0 :(得分:0)

我认为最简单的解决方案和我经常使用的修改默认共享点功能而无需安装服务器端代码的方法是在页面上注入一些javascript以进行必要的修改。

如果您不想编辑页面源本身,则Content Editor webpart非常适用于此。与IE Developer Toolbar或Firebug一起检查您想要编辑的元素,您应该只需几行javascript即可实现所需。

如果您需要有关此工作的更多详细信息,请与我们联系。

答案 1 :(得分:0)

编辑菜单的标题/链接是计算字段 - 基本上是标题和项目ID的组合。如果你看一下该字段的定义(我认为它位于fields.xml中)你应该能够在schema.xml中创建一个使用其RenderPattern中的url字段的修改版本。

答案 2 :(得分:0)

根据Tom的回答,您可以使用VseWss 1.3中的SharePoint Solution Generator生成可以重新创建列表的Visual Studio解决方案。当你看到视图在schema.xml文件中使用的大量XML时你会晕倒但是你会看到Tom提到的渲染模式,你应该能够大致了解如何修改它以适合你的需要。

喜欢SharePoint。小型自定义意味着“拿走我给你的东西或从头开始重写”