MOSS开发Tips

EventHandler:

问题:

最近在开发Eventhandler的时候发现ItemAdded这个方法中如果有对列表项进行更新操作,即执行了item.Update() ,那么就会触发ItemUpdated这个eventhandler事件,我们的本意是编辑,修改的时候

去触发ItemUpdated这个eventhandler

public override void ItemAdded(SPItemEventProperties properties)

{    

properties.ListItem.Update();

}

public override void ItemUpdated(SPItemEventProperties properties)

{

     //update code here

}

解决办法:

添加DisableEventFiring() 这个方法,阻止其他事件被调用

public override void ItemAdded(SPItemEventProperties properties)

{

     DisableEventFiring(); //Prevents events from being raised.

    

properties.ListItem.Update();

}

或者不使用properties.ListItem.Update();

改为properties.ListItem.SystemUpdate();

public override void ItemAdded(SPItemEventProperties properties)

{

    

properties.ListItem. SystemUpdate();

}

 

Splistitem.SystemUpdate Updates the database with changes made to the list item without effecting changes in the modified time or modified by fields.

 

用户,查阅项数据类型

我们用代码访问用户或查阅项数据类型时候要做些字符串的处理,再使用该数据,

因为这俩中类型,我们用代码item["Author"].ToString()得到的字符串格式是id;#displayname 

        ///get the id by string format as: id;#displayname

        ///查询项,用户字符串

        public static int getID(string val)

        {

            return Int32.Parse(val.Substring(0, val.IndexOf(';')));

        } 

        ///get the displayname by string format as: id;#displayname

        ///查询项,用户字符串

        public static string getDisplayname(string val)

        {           

            return val.Substring(val.IndexOf('#') + 1);

        }

 

Workflow:

workflow.xml 配置

一个工作一般都有初始化表单和任务表单,但有的情况我们不需要初始化表单,即该工作流只有任务表单,这样的话,workflow.xml配置文件就需要作相应修改.

有初始化表单必须有这些节点:

<Workflow

InstantiationUrl="_layouts/IniWrkflIP.aspx"
ModificationUrl="_layouts/ModWrkflIP.aspx">

<MetaData>

<Instantiation_FormURN/>

<Task0_FormURN/>

<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>

</MetaData>

</Workflow>

 

只有任务表单的工作流(如果不这样,工作流就会发生错误):

<Workflow
ModificationUrl="_layouts/ModWrkflIP.aspx">

<MetaData>

<Task0_FormURN/>

<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>

</MetaData>

</Workflow>

 

posted on 2008-07-23 11:45  Ken Lin  阅读(1220)  评论(9编辑  收藏  举报

导航