2009-05-05 10 views
1

リストの[アクション]メニューにボタンを追加するカスタムアクション機能を作成しました。 ControlAssembly/ControlClass属性を指定しないと、ボタンが表示されます。これらの属性を指定すると、ボタンは表示されません。私はサイトweb.configに一致するSafeControl要素を追加しようとしました。私はVSeWSSを使用しています。リストの[アクション]メニューにボタンを追加する

UPDATE - 他の質問へのリンクを削除しました。 ControlAssemblyとControlClassの属性を指定すると、私のCustomActionボタンが表示されない理由を誰でも教えていただけますか?

更新2 - RegenConfigTempは実際にWebControlから継承します。ごめんなさい! Webアクセスが可能な私のマシンは私の開発マシンとは異なり、CDを焼くほどの間にファイルを移動する方法はありません。ここ

が私のファイルです:

 
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" />

+0

これは、この質問に対する回答であると思われますか? –

+0

本当の質問ではないと投票しました –

答えて

1

問題がModule.xmlにありました。 ControlAssembly =「WebFeature、バージョン= 1.0.0.0、文化=中立、なPublicKeyToken = myPKTokenHere」

私は右の軌跡Bになった:私はこの(補正)の行に「バージョン」の後記号を「等しい」欠落していました/ c私はSharepointの診断ログを発見し、このブログの最初のコメント:http://blog.lostparticles.net/?p=23が私の問題でした。

y'allsヘルプありがとうございます。

更新:web.configも修正する必要がありました。私は、web.configに直接ではなくマニフェストにsafecontrol行を置くことになりました。 JMDに感謝します。 (なぜ、VSeWSSはウェブパーツのためにそうするのですか?)

0

に以下を追加し、あなたのコードが何をレンダリングすることになっていることを確認していますか?あなたはどのクラスを継承していますか?レンダーコードはどこですか?あなたは例外についてSharePointログをチェックしましたか?

これはあなたの質問に対する回答ではありませんが、SafeControlタグをweb.configではなくマニフェストに配置することができます。

0

確かにRegenConfigTempは何かから継承する必要がありますか?現在、コントロールを追加していないので、空のコントロールをオーバーライドしていると、何も表示されません。それ以外の場合は、コードが実行されているかどうかを確認するために、ブレークポイントを設定するか、診断トレースをCreateChildControls()に追加してみてください。

関連する問題