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

更改SharePoint中的编辑控制块(ECB)链接URL,sharepoint,wss-3.0,Sharepoint,Wss 3.0,有没有办法动态更改WSS 3.0中与ECB菜单关联的超链接?例如,我有一个包含两个字段的列表。一个字段是隐藏的,是链接,另一个是标题字段,它具有ECB菜单。标题字段当前链接到项目的查看页面,但我们希望它链接到链接字段的url。可能吗 更新-2009年5月29日上午9时 到目前为止,我有这个。看这个 我现在的问题是网格中的行为每个项提供了上面的ID属性,但是如果我更改视图或进行任何筛选,您可以看到ID实际上只是行号。我可以在这里获取实际项目的GUID吗 如果我可以获得项目的ID,我可以将其与列表

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


更新-2009年5月29日上午9时 到目前为止,我有这个。看这个

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


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

我认为最简单的解决方案,也是我经常用来修改默认sharepoint功能而不必安装服务器端代码的解决方案,就是注入一些在页面上添加javascript以进行必要的修改

如果您不想编辑页面源本身,则内容编辑器Web部件非常适合于此。与IE开发者工具栏或Firebug一起检查您想要编辑的元素,您应该能够通过几行javascript实现所需的功能


如果您需要获得这项工作的任何进一步详细信息,请告诉我。

编辑菜单的标题/链接是一个计算字段-基本上是标题和项目id的组合。如果您查看字段的定义(我想它在fields.xml中)您应该能够在schema.xml中创建一个修改后的版本,该版本在其呈现模式中使用url字段。

继Tom的回答之后,您可以使用VseWss 1.3中的SharePoint解决方案生成器生成可以重新创建列表的Visual Studio解决方案。当您看到视图在schema.XML文件中使用的大量XML时,您会感到晕眩,但您会看到Tom提到的渲染模式,您应该能够大致了解如何修改它以满足您的需要


我一定喜欢SharePoint。小的定制意味着“接受我给你的,或者从头开始重写”

这里有一些关于“为什么”我们这样做的背景信息。该列表实际上是子站点的列表,但我们需要这些站点的附加属性。我们不想显示这些网站的url,但我们希望这些网站的“标题”是链接。我想我们可以将项目详细信息页面转发到该站点,但理想的情况是将链接点指向正确的位置。有什么想法吗?我想过了。但是由于带有URL的字段是隐藏的,并且在DOM中不可用,我不知道如何更改标题字段的URL。使用IE工具栏,我在core.js中找到了正确的位置,我知道我只需要更改标题锚标记的href属性。我可以用JavaScript实现这一点,但获取正确的URL可能很困难。也许我可以用正确的URL/标题DOM ID呈现一个JavaScript数组,然后动态替换href。。。
<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