如果你自定义CustomAction时,如下
<CustomAction Id ="CustomActions.ItemsSending.Announcements"
Location ="Microsoft.SharePoint.StandardMenu"
GroupId ="ActionsMenu"
Title ="推送到首页"
Sequence ="100"
ImageUrl ="/_layouts/Images/ContentPush/ItemsSend.gif"
Description ="把栏目条目推送到首页指定的栏目。"
RegistrationType ="List"
RegistrationId ="104">
<UrlAction Url ="/_layouts/ContentPush/SendingPage.aspx">
</CustomAction>
那么你在你的aspx页面后台代码中的SPContext.Current.Web将是RootWeb的上下文,如果你需要真正的获得的话
我们得动点手脚,吧UrlAction修改为下面,逻辑也就是解析出当前web的相对url,然后拼出连接地址,例如你当前网站的地址为http://mossserver:2007/docs,那么你拼出的地址应该是/Docs/_layouts/ContentPush/SendingPage.aspx
<UrlAction Url ="javascript:function process(){var siteUrl='{SiteUrl}';var pageUrl = '/_layouts/ContentPush/SendingPage.aspx';var po = siteUrl.indexOf('/', 7);var relativeUrl = siteUrl.substring(po, siteUrl.length);var currentWebPageUrl = relativeUrl + pageUrl+'?SiteUrl={SiteUrl}&ListID={ListId}';window.location.href=currentWebPageUrl;};process();"/>
sharepoint自带的参数你可以上msdn查,我还是在这里给出
Windows SharePoint Services 支持以下用于启动相对 URL 的标记:
~site - 网站 (SPWeb) 相对链接。
~sitecollection - 网站集 (SPSite) 相对链接。
此外,您可以在 URL 中使用以下标记:
{ItemId} - 表示列表中的项目的整数 ID。
{ItemUrl} - 正在处理的项目的 URL。仅适用于库中的文档。[在 Beta 2 中不起作用]
{ListId} - 表示列表的 GUID。
{SiteUrl} - 网站的 URL (SPWeb)。
{RecurrenceId} - 重复索引。不支持将该标记用于列表项的上下文菜单中。
总结
1.Windows SharePoint Services 自带支持一些参数
2.url是可以使用脚本的
3.customaction还可以限定指定列表,内容类型,权限等