0

Visual Studio 2010 で作成したカスタム コンテンツ タイプがあります。

カスタム http://img204.imageshack.us/img204/439/customf.jpg

これが私のカスタム コンテンツ タイプです.... このコンテンツ タイプを同じサイトのサブサイトで使用したいと考えています。今私はこれを持っています:

http // XXXXX/........../Forms/AllItems.aspx

このコンテンツ タイプを使用したい

http://XXXXX/SUBSITE...../Forms/AllItems.aspx...

コードでは、次のようにカスタム コンテンツ タイプを最初のドキュメント ライブラリに関連付けました。

 <CustomAction
Id="SPTest.CustomMenuItem.ButtonClicked"
Location="CommandUI.Ribbon.ListView"
RegistrationId="{F9658A9F-3F04-48BD-A14A-9EBAF5DE9EE8}"
RegistrationType="List"
>

RegistrationId はドキュメントのライブラリ サイトの ID ですが、この RegistrationId にサブサイトのドキュメント ライブラリの ID を入力すると、何も起こりません...

別の質問:このドキュメント ライブラリでアイテムを選択すると、[ドキュメント] タブが表示されます..ドキュメント タブの代わりに PATOne ルール エンジンを表示する方法はありますか?

4

2 に答える 2

1

これは「カスタム コンテンツ タイプ」ではなく「カスタム アクション」です。ヒント: コンテンツ タイプには「ContentType」要素が含まれます。次のようになります。

<ContentType ID="0x01AB"
     Name="MyCustomContentType"
     Group="MyCustomContentTypeGroup"
     Description="Customized Content Type"
     Version="0">
   <FieldRefs>
    <FieldRef ID="{8c06beca-0777-48f7-91c7-6da68bc07b69}"
     Name="Created"
     DisplayName="Field1" />
    <FieldRef ID="{1df5e554-ec7e-46a6-901d-d85a3881cb18}"
     Name="Author"
     DisplayName="Field2" />
   </FieldRefs>
</ContentType>

さらに、コンテンツ タイプに対して登録する場合、RegistrationId を GUID にすることはできません。リストに対して登録されている場合、RegistrationId はリストのタイプ ID (サイト内のドキュメント ライブラリの場合は 101)、または特定のリストの GUID (この場合、アクションはそのリストに対してのみ機能します) のいずれかである必要があります。この最後のものは試していませんが、うまくいくと思います。(編集:この議論の最後に、このように動作すると説明されています)

GUID によっては、特定のリストのカスタム アクションを登録している可能性がありますが、サブサイトのリストには別の ID があるため、カスタム アクションの登録は適用されません。

つまり、カスタム アクションを次のものに追加できます。

  • 特定のリスト、それはあなたがやったことだと思います。
  • サイト/サブサイト内の特定の種類のすべてのリスト
  • これらのリストで使用するコンテンツ タイプ。(私は試していません)

コンテンツ タイプに対して登録するには、登録は次のようになると思います。

<CustomAction 
    Id="SPTest.CustomMenuItem.ButtonClicked"              
    Location="CommandUI.Ribbon.ListView"
    RegistrationType="ContentType"
    RegistrationId="0x01AB"

RegistrationType と RegistrationId に注意してください

于 2012-06-27T09:46:00.373 に答える
0

これは私のコンテンツタイプです

<?xml version="1.0" encoding="utf-8"?>
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="SPTest.CustomMenuItem.ButtonClicked"
Location="CommandUI.Ribbon.ListView"
RegistrationId="{F9658A9F-3F04-48BD-A14A-9EBAF5DE9EE8}"
RegistrationType="List"
>
<CommandUIExtension>
  <CommandUIDefinitions>
    <CommandUIDefinition
      Location="Ribbon.Tabs._children">
      <Tab
        Id="Ribbon.PATOneRule"
        Title="PATOne Rule Engine"
        Sequence="501">
        <Scaling
          Id="Ribbon.PATOneRule.Scaling">
          <MaxSize
            Id="Ribbon.PATOneRule.MaxSize"
            GroupId="Ribbon.PATOneRule.PATOneRuleGroup"
            Size="OneLargeTwoMedium"/>
          <Scale
            Id="Ribbon.PATOneRule.Scaling.PATOneRuleScaling"
            GroupId="Ribbon.PATOneRule.PATOneRuleGroup"
            Size="OneLargeTwoMedium" />
        </Scaling>
        <Groups Id="Ribbon.PATOneRule.Groups">
          <Group
            Id="Ribbon.PATOneRule.PATOneRuleGroup"
            Description="Workflow Rules"
            Title="Workflow Group"
            Sequence="52"
            Template="Ribbon.Templates.CustomTemplateExample">
            <Controls Id="Ribbon.PATOneRule.PATOneRuleGroup.Controls">
              <Button
                Id="Ribbon.PATOneRule.PATOneRuleGroup.NewWorkflow"
                Image32by32="/PublishingImages/_t/new_jpg.jpg"
                Command="PATOneRule.NewWorkflow"
                Sequence="15"
                Description="Create New Workflow"
                LabelText="New Workflow"
                TemplateAlias="cust1"/>
              <Button
                Id="Ribbon.PATOneRule.PATOneRuleGroup.RunWorkflow"
                Image32by32="/PublishingImages/_t/play_jpg.jpg"
                Command="PATOneRule.RunWorkflow"
                Sequence="15"
                Description="Run Selected Workflow"
                LabelText="Run Workflow"
                TemplateAlias="cust2"/>
              <Button
               Id="Ribbon.PATOneRule.PATOneRuleGroup.EditWorkflow"
               Image32by32="/PublishingImages/_t/edit_jpg.jpg"
               Command="PATOneRule.EditWorkflow"
               Sequence="15"
               Description="Edit Selected Workflow"
               LabelText="Edit Workflow"
               TemplateAlias="cust3"/>
            </Controls>
          </Group>
        </Groups>
      </Tab>
    </CommandUIDefinition>
    <CommandUIDefinition Location="Ribbon.Templates._children">
      <GroupTemplate Id="Ribbon.Templates.CustomTemplateExample">
        <Layout
          Title="OneLargeTwoMedium"
          LayoutTitle="OneLargeTwoMedium">
          <Section Alignment="Top" Type="OneRow">
            <Row>
              <ControlRef DisplayMode="Large" TemplateAlias="cust1" />
              <ControlRef DisplayMode="Large" TemplateAlias="cust3" />
              <ControlRef DisplayMode="Large" TemplateAlias="cust2" />
            </Row>
          </Section>
        </Layout>
      </GroupTemplate>
    </CommandUIDefinition>
  </CommandUIDefinitions>
  <CommandUIHandlers>
    <CommandUIHandler
      Command="PATOneRule.NewWorkflow"
      CommandAction="javascript:__doPostBack('NewWorkflow', '')" />
    <CommandUIHandler
     Command="PATOneRule.EditWorkflow"
     CommandAction="javascript: 
     function getId() { 
       var ctx = SP.ClientContext.get_current();
       var selectedItems = SP.ListOperation.Selection.getSelectedItems(ctx);
       var key;
       var itemsSelected;
       for (key in selectedItems) {
       itemsSelected = itemsSelected + ', ' + selectedItems[key].id;
      } 
      __doPostBack('EditWorkflow',itemsSelected); 
     }
     getId();"
     EnabledScript="javascript:
     function singleEnable() { 
       var items = 
       SP.ListOperation.Selection.getSelectedItems(); 
       var ci = CountDictionary(items); 
       return (ci == 1); 
     } 
     singleEnable();"
     />
    <CommandUIHandler
    Command="PATOneRule.RunWorkflow"
    CommandAction="javascript: 
     function getId() { 
       var ctx = SP.ClientContext.get_current();
       var selectedItems = SP.ListOperation.Selection.getSelectedItems(ctx);
       var key;
       var itemsSelected;
       for (key in selectedItems) {
       itemsSelected = itemsSelected + ', ' + selectedItems[key].id;
      } 
      __doPostBack('RunWorkflow',itemsSelected); 
     }
     getId();"
    EnabledScript="javascript:
     function singleEnable() { 
       var items = 
       SP.ListOperation.Selection.getSelectedItems(); 
       var ci = CountDictionary(items); 
       return (ci>0); 
     } 
     singleEnable();"
     />
  </CommandUIHandlers>
</CommandUIExtension>

于 2012-06-27T08:24:07.800 に答える