0

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


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

<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 并将用户转发到正确的站点。

4

3 回答 3

0

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

于 2009-05-30T06:57:29.287 回答
0

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

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

于 2009-05-30T07:08:43.820 回答
0

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

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

如果您需要有关完成这项工作的更多详细信息,请告诉我。

于 2009-05-28T21:36:25.727 回答