Я создал функцию CustomAction, чтобы добавить кнопку в меню «Действия» в списке. Когда я не указываю атрибуты ControlAssembly / ControlClass, появляется кнопка. Когда я указываю эти атрибуты, кнопка не отображается. Я попытался добавить соответствующий элемент SafeControl на сайте web.config. Я использую VSeWSS.
ОБНОВЛЕНИЕ - удалена ссылка на другой вопрос - не уверен, как я это сделал.
Мой вопрос: может ли кто-нибудь сказать мне, почему моя кнопка CustomAction не отображается, когда я задаю атрибуты ControlAssembly и ControlClass?
ОБНОВЛЕНИЕ 2 - RegenConfigTemp фактически наследует от WebControl, извините! Мой компьютер с доступом через Интернет отличается от моего компьютера разработчика, и нет возможности перемещать файлы между ними, кроме записи компакт-диска.
вот мои файлы:
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<Solution SolutionId="GUIDHERE" xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureManifests>
<FeatureManifest Location="RegenConfigTemp\feature.xml" />
</FeatureManifests>
<Assemblies>
<Assembly Location="WebFeature.dll" DeploymentTarget="GlobalAssemblyCache" />
</Assemblies>
</Solution>
feature.xml
<Feature Id="GUIDHERE" Title="RegenConfigTemp" Scope="Web" Version="1.0.0.0" Hidden="FALSE" DefaultResourceFile="core" xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="RegenConfigTemp\Module.xml" />
</ElementManifests>
</Feature>
Module.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements Id="GUIDHERE" xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="GUIDHERE"
RegistrationType="List"
RegistrationId="1981"
GroupId="ActionsMenu"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1000"
Title="Regenerate List Contents"
ControlAssembly="WebFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=myPKTokenHere"
ControlClass="WebFeature.RegenConfigTemp"
></CustomAction>
</Elements>
RegenConfigTemp.cs
using System;
using System.Runtime.InteropServices;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebControls;
namespace WebFeature
{
[Guid("GUID HERE MATCHES 1st GUID in Module.xml")]
public class RegenConfigTemp : WebControl
{
protected override void OnLoad(EventArgs e)
{
this.EnsureChildControls();
base.OnLoad(e);
}
protected override void CreateChildControls()
{
base.CreateChildControls();
}
}
}
Я добавил следующее в web.config
<SafeControl Assembly="WebFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=myPKTokenHere" Namespace="WebFeature" TypeName="RegenConfigTemp" Safe="True" />