因此,我在Visual Studio中创建一个SharePoint 2010项目,其中包含与某个列表关联的顺序工作流(仅限Farm解决方案)项,以便在项目添加到列表时工作流启动。
我的问题是,说项目是按以下格式添加的:
姓名|电子邮件
戴夫| dave@dave.com有没有办法以编程方式将这些数据存储在变量中?原样,不使用任何硬编码索引或任何东西,只需以编程方式获取它,以便我可以提取这些数据并将其存储在两个C#变量(int iD,string emailAddress)中,工作流知道哪个列表项被踢掉了?
目前,我正在这样做:
using (SPWeb oWeb = SPContext.Current.Web) {
SPList oList = web["List Name"];
string name = list.Items[(oList.ItemCount - 1)]["Name"].ToString();
}
但是我不想使用索引器,因为如果快速添加另一个项目并且列表重新排序然后......灾难,则索引可能会关闭。
提前致谢!
答案 0 :(得分:2)
解决了它们!非常愚蠢的我忽略了这一点,但这是解决方案:
C#为您创建一个类型为SPWorkflowActivationProperties的workflowProperties变量,其中包含获取所需数据的所有方法和属性:
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties(); // auto generated code.
然后,要获取列表项数据甚至列出数据,您只需:
SPList oList = workflowProperties.List; // get the list that contains the list item on which the workflow instance is running.
SPListItem oItem = workflowProperties.Item; // get the list item on which the workflow instance is running.
所以为了得到我的“名字”数据我将不得不:
string name = workflowProperties.Item["Name"].ToString();
希望这有助于某人,但幸运的是没有人像我一样愚蠢,所以你们可能会自己解决这个问题。