Dan*_*ner 2 sharepoint workflow custom-action code-behind
我很抱歉问了一个双重问题,但我搞砸了找不到解决方案 - 或者对答案缺乏理解.
我的问题就像被描述一样:
我有一些带按钮的自制定制丝带.如果我点击设计按钮,我想开始工作流程.
好的,有关设置的更多信息:
这是一个通用列表,意思是,我的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>
Run Code Online (Sandbox Code Playgroud)
希望很清楚我的XML-Post意味着什么.好吧,如果我把CommandAction ="javascript:alert('应该启动一个工作流程'),这样可以正常工作;" .我的意思是,这个警报弹出,我可以点击好,没别的.
现在我在同一个项目中设计了我的工作流程.有两种类型,一种在asp中有启动形式,另一种没有,都在选定的项目上运行.我可以在使用标准功能区"Workflows"时启动它们,然后单击它们.到目前为止一切都很好.
但我希望通过单击我的按钮来启动每个工作流程,而不是现在的点击次数.谢谢你到目前为止帮助我.
我是SharePoint的新手.所以请在你的答案中包括诸如"添加新的...空元素/ JavaScript文件"之类的内容或者任何必要的内容以获得我所假设的内容.
如果您对我的工作流程设计有更多疑问,我会尽快回答.
非常感谢你,
danbruc
注意:是的,我只是希望即使我的Elements.xml也没问题.我从网上拿走了所有.所以如果你有重新设计的建议,我是开放的.只是盲目地看到解决方案.另外,我可以把这个Tab放在ListView的ContextualTab中,但是后来甚至javascript都无法正常工作.
您是否阅读了有关自定义和扩展SharePoint 2010 Server功能区的文档?
它非常简洁,并向您显示有关您的问题的重要信息:您需要进行回发以通过服务器端代码启动工作流程:
<CommandUIHandler Command="WebPartContextualTabs.OnPostback"
CommandAction="javascript:__doPostBack('StartMyWorkflowPostBack','');" />
Run Code Online (Sandbox Code Playgroud)
现在要投入什么来StartMyWorkflowPostBack启动您的工作流程?有几个资源,您可以通过Google找到更多资源:
让我简单解释一下:你没有告诉我们什么样的工作流程.基于列表的工作流程或站点工作流程,启动方法因这些而异.以列表工作流程为例,您需要像这样启动工作流程:
SPWorkflowProperties.Site.WorkflowManager.StartWorkflow(listItem, associationTemplate, initData);
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,你需要很多东西:这个SPListItem,SPWorkflowAssociationTemplate以及一些启动数据.
| 归档时间: |
|
| 查看次数: |
10669 次 |
| 最近记录: |