SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(3)-创建Instantiation Form

     创建一个Instantiation表单,其实和创建一个Association表单是十分相识的,我也不像在这里把代码一一的贴出来,最后我会把所有的工程一次性的贴出来的.

     在前面创建Association Form的时候,为了简化过程,我没有讲如何将Association Data传到workflow中,并在Instantiation Form中使用.

     首先,为了简化,Association表单和Instantiation表单是一样的,两个表单都是一个PeoplePicker和一个TextBox,所以用于表示两个表单数据的类是相同的,只不过为了让代码看起来更清楚点,我定义了两个类,完全一样,只不过名字是不同的.

     

Code

 

     因为PeoplePick是可以选择多个用户的,所以创建了一个Contact类,用来保存用户名.记得定义这些类需要加上[Serializable()],因为这些类会被序列化并传递给workflow实例.为此,我们也需要写两个辅助的函数,用于将我们输入的数据序列化成字符串,或是将序列化的数据反序列化成相应的对象.下面代码中的DeserializeAssoicationData函数,是将从Association表单中传递下来的序列化后的数据重新反序列化成相应的实例对象,而这些实例对象中的数据可以在Instantiation表单中被使用.serializeInstantiationFormDataToXML函数是将Instantiation表单中的数据序列化为XML字符串,传递给workflow实例,使得这些数据能够被后续的步骤中使用.

     

Code

 

     至于Instantiation表单的ASPX页面,对于我来说,是很Assocaition页面是完全一样的,除了最开始的Inherit属性不同之外,其它的完全一样.而其相应的后台代码,和Association的后台代码是十分相似的,大家到时候看看代码就明白了.

posted @ 2008-12-19 09:50  jdxyw  阅读(818)  评论(5编辑  收藏  举报