在SharePoint 2010(所有与Visual Studio 2010)
我是问一个双待很抱歉,但我与发现无解搞砸了一个列表项开始从自定义按钮/动作的工作流 - 或失踪理解答案。在SharePoint 2010(所有与Visual Studio 2010)
我的问题是像descrided:
我有一个按钮一些自我构建的自定义功能区。如果我点击设计好的按钮,我喜欢开始一个工作流程。
好了,更多设置:
这是一个通用的清单,是指,我elemets.xml看起来像这样:
<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('应该启动一个工作流程');” 。我的意思是,这个警报弹出,我可以点击好的,没有别的。
现在我在同一个项目中我的工作流程而设计的。有两种类型,一种是在asp中启动的形式,另一种是没有的,都在选定的项目上运行。我可以在使用标准功能区“Workflows”时启动它们,然后单击它们。目前一切都很好。
但我想通过点击我的按钮,没有更多的点击,因为它是从现在开始每个工作流程。谢谢你帮助我。
我很新的SharePoint。所以请在你的答案中包括“添加新的......空元素/ JavaScript文件”或任何需要的东西来获得我的假设。
如果您对我的工作流设计更多的问题,我会尽快答复。
非常感谢你,
danbruc
注:是的,我只希望,甚至我的Elements.xml是好的。我从网上拿走了所有的东西所以如果你有重新设计的建议,我是开放的。只是盲目地看到解决方案。 此外,我可以把这个选项卡放在ListView的ContextualTab中,但是即使javascript不工作。
你阅读Customizing and Extending the SharePoint 2010 Server Ribbon的文档?
这是非常简洁的,并告诉您关于您的问题,一个重要的点: 你需要做一个回发到发起通过服务器端代码的工作流程:
<CommandUIHandler Command="WebPartContextualTabs.OnPostback"
CommandAction="javascript:__doPostBack('StartMyWorkflowPostBack','');" />
现在要放什么StartMyWorkflowPostBack
开始你工作流程?这有几个资源,你会发现很多更通过谷歌:
- Start Workflow From c# Code
- Creating new instance of SharePoint workflow through C# code.
- HOWTO: Start a SharePoint 2010 Workflow Programatically
让我在很短解释:你没有告诉我们是什么样的流程。基于列表的工作流程或站点工作流程,启动方法因此而异。以列表的工作流程作为一个例子,你需要只启动工作流,像这样:
SPWorkflowProperties.Site.WorkflowManager.StartWorkflow(listItem, associationTemplate, initData);
但正如你所看到的,你将需要为这个有很多的东西:在SPListItem
,则SPWorkflowAssociationTemplate
以及一些启动数据。
亲爱的moontear, 非常感谢您的快速回答。我会看看你的链接,他们听起来很有用。 而且看起来我无法为Google提出正确的问题。因为我发现了大量工作流程的演练,同样吨的自定义操作,但没有合并。 参考您的问题: 一)所有的工作流程是针对特定列表 B)有些人发起的形式,有的则没有 谢谢你,我会后了解你的链接 – 2011-12-22 13:25:13
你想后做什么不容易,但可以实现。理解您的自定义操作在MSDN上的Postback示例,并在后面的代码中调用一个'StartWorkflow' - 基本上就是这个过程:-) – 2011-12-22 14:11:50
ATM我可以从另一个启动工作流程,同时全部由我部署。这是伟大的,供以后使用。回寄的东西将是下一个,但现在我不在办公室,并希望你度过愉快的周末愉快的时光。 (不是每个人都属于圣诞节)。 – 2011-12-22 15:50:06