я после следующего проекта: http://www.thorntontechnical.com/tech/sharepoint/sharepoint-2010-context-menu-item-with-custom-codedoPostBack не стреляя
Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Id="SPTest.CustomMenuItem.ButtonClicked"
RegistrationType="FileType"
RegistrationId="dtsx"
Location="EditControlBlock"
ImageUrl="/_layouts/IMAGES/DOCLINK.GIF"
Sequence="600"
Title="Execute Package"
Description="Executed Selected Package"
ControlAssembly="SPTest.CustomMenuItem, Version=1.0.0.0, Culture=neutral, PublicKeyToken=beb14bc625e99e7f"
ControlClass="SPTest.CustomMenuItem.CustomItemAction"
>
<UrlAction Url="javascript:__doPostBack('SPTest.CustomMenuItem.CustomItemAction', {ItemId});" />
</CustomAction>
</Elements>
PACKAGE.TEMPLATE.XML
<?xml version="1.0" encoding="utf-8"?>
<Solution xmlns="http://schemas.microsoft.com/sharepoint/">
<Assemblies>
<Assembly Location="SPTest.CustomMenuItem.dll" DeploymentTarget="GlobalAssemblyCache">
<SafeControls>
<SafeControl Assembly="SPTest.CustomMenuItem, Version=1.0.0.0, Culture=neutral, PublicKeyToken=beb14bc625e99e7f"
Namespace="SPTest.CustomMenuItem" TypeName="*" Safe="True" SafeAgainstScript="False" />
</SafeControls>
</Assembly>
</Assemblies>
</Solution>
Итак ... В файле Web.config мы можем найти нашу сборку в SafeControl
КЛАСС ДЛЯ ВЫПОЛНЕНИЯ
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace SPTest.CustomMenuItem
{
public class CustomItemAction : SPLinkButton
{
protected override void OnLoad(EventArgs e)
{
this.EnsureChildControls();
base.OnLoad(e);
if (this.Page.Request["__EVENTTARGET"] == "SPTest.CustomMenuItem.ButtonClicked")
{
int itemId = Convert.ToInt32(this.Page.Request["__EVENTARGUMENT"]);
System.IO.TextWriter writer = new StreamWriter(@"C:\XXXXX\XXXXX\XXXXX\custommenuoutput.txt", true);
writer.WriteLine("Event Fired at:" + DateTime.Now.ToLongTimeString() + ": Item ID:" + itemId.ToString());
writer.Close();
}
}
}
}
Как вы можете видеть, целью является выполнение пакета SSIS, который выделяется на Sharepoint. Меню ECB с параметром Execute Package появилось во всех файлах с типом dtsx. Поэтому, когда я щелкнул в этом дне, событие не работает ... Я не знаю, что мне нужно делать ... Любая помощь будет унаследована. Благодаря!!
Я заменяю свой код на ваш и ничего не происходит ... В группе SiteActions не появляется опция –
Опция не должна быть видимой в группе SiteActions - она должна быть там, но невидимой. Чтобы сделать его видимым, вы должны предоставить ему название. Обновляется ли страница, когда вы выбираете свое собственное действие (действительно ли оно опубликовано)?Если да, попробуйте добавить ** protected override void OnInit (EventArgs e) ** в CustomItemAction и установить точку останова внутри - если точка останова не запускается при обновлении страницы, это означает, что CustomItemAction не является деревом управления страницами и не может обрабатывать постбэк. –