从SharePoint 2010中列表项上的自定义按钮/操作启动工作流(全部使用Visual Studio 2010)
很抱歉,我问了两个问题,但我找不到解决方案,或者对答案缺乏理解,这让我很困惑 我的问题如下所述: 我有一些自制的带纽扣的丝带。如果我点击“设计”按钮,我会启动一个工作流 好的,有关设置的更多信息: 这是一个通用列表,意味着我的elemets.xml如下所示:从SharePoint 2010中列表项上的自定义按钮/操作启动工作流(全部使用Visual Studio 2010),sharepoint,workflow,code-behind,custom-action,Sharepoint,Workflow,Code Behind,Custom Action,很抱歉,我问了两个问题,但我找不到解决方案,或者对答案缺乏理解,这让我很困惑 我的问题如下所述: 我有一些自制的带纽扣的丝带。如果我点击“设计”按钮,我会启动一个工作流 好的,有关设置的更多信息: 这是一个通用列表,意味着我的elemets.xml如下所示: <CustomAction Id="MyCustomRibbonTab" Location="CommandUI.Ribbon.ListView" RegistrationId="100" RegistrationTy
<CustomAction
Id="MyCustomRibbonTab"
Location="CommandUI.Ribbon.ListView"
RegistrationId="100"
RegistrationType="List">
<CommandUIExtension>
<CommandUIDefintions>
<CommandUIDefinition
Location="Ribbon.Tabs._children">
<Tab Id="Ribbon.CustomTab" Sequence="501">
... (Scaling)
<Groups Id="Ribbon.CustomTab.Groups">
<Group
Id="Ribbon.CustomTab.GroupOne"
Sequence="52">
<Controls Id="Ribbon.CustomTab.GroupOne.Controls">
<Button
Id="Ribbon.CustomTab.GroupOne.ButtonOne"
Command="CustomTab.ButtonOneCommand"
Sequence="11">
</Controls>
</Group>
</Groups>
</Tab>
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler
Command="CustomTab.ButtonOneCommand"
CommandAction="javascript:alert('how start workflow here?');" />
/>
</CommandUIHandlers>
</CommandUIExtension>
<!-- what about starting workflow here? How? -->
</CustomAction>
... (缩放)
/>
希望我的XML帖子的意思很清楚。好的,如果我把CommandAction=“javascript:alert('should start a workflow');”放进去,这就行了。我的意思是,这个警报会弹出,我可以点击OK,没有别的
现在我在同一个项目中设计了我的工作流程。有两种类型,一种在asp中具有初始化形式,另一种不具有初始化形式,都对所选项目进行操作。我可以在使用标准功能区“工作流”时启动它们,然后单击它们。到目前为止一切都很好
但我希望通过单击我的按钮来启动每个工作流,而不是像现在这样进行更多的单击。谢谢你一直以来对我的帮助
我对SharePoint非常陌生。所以,请在你的回答中包括“添加新的……空元素/JavaScript文件”或任何我认为必要的东西
如果您对我的工作流程设计有更多问题,我会尽快回答
多谢各位
丹布鲁克
注意:是的,我只是希望即使是我的Elements.xml也可以。我从网络上获取了所有信息。所以,如果你有重新设计的建议,我是开明的。只是看不见解决办法。
此外,我可以将此选项卡放在ListView的ContextAltab中,但即使是javascript也无法工作。您是否阅读了上的文档 它非常简洁,并向您展示了与您的问题相关的要点: 您需要通过服务器端代码执行回发以启动工作流:
<CommandUIHandler Command="WebPartContextualTabs.OnPostback"
CommandAction="javascript:__doPostBack('StartMyWorkflowPostBack','');" />
但是正如你所看到的,你需要很多东西来完成这项工作:
SPListItem
,SPWorkflowAssociationTemplate
,以及一些入门数据。亲爱的moontear,非常感谢你的快速回答。我会看看你的链接,它们听起来很有用。看起来我没能为谷歌提出正确的问题。因为我发现一个工作流有很多演练,同样,自定义操作也有很多演练,但没有一个合并在一起。参考您的问题:a)所有工作流都针对特定列表b)有些有入会申请表,其他人不感谢您,我会在理解您的链接后发布。您尝试做的事情并不容易,但可以实现。了解MSDN上用于自定义操作的回发示例,只需在代码隐藏中调用StartWorkflow
——这基本上就是流程:-)ATM我能够从另一个启动工作流,而所有工作流都是由我部署的。这是伟大的,供以后使用。下一步是回邮,但现在我不在办公室,祝你周末愉快,有愉快的时刻。(并不是每个人都属于圣诞节)。事实上,我发现你可以通过JS对象模型直接启动工作流:非常有趣,不会涉及代码隐藏:-)嗨,月亮泪,非常感谢你的研究工作。对不起,最近几天没有再看。但祝你新年快乐。下次我会尝试你的建议并给出反馈。
SPWorkflowProperties.Site.WorkflowManager.StartWorkflow(listItem, associationTemplate, initData);