大头瓜

导航

【InfoPath应用场景:库存管理】在InfoPath Form Service利用WSS Web Service技术,通过VSTA代码把复杂表单写入SharePoint列表数据库的后继

http://blog.lickies.cn/DocLib/[%20InfoPath应用场景:库存管理%20]%20在InfoPath%20Form%20Service利用WSS%20Web%20Service技术,通过VSTA代码把复杂表单写入SharePoint列表数据库%20(一).aspx

后继处理删除表单表单操作:

首先创建ConsoleApplication1项目
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace Eallies.EventHandler.Register
{
public class Program
{
static void Main(string[] args)
{

SPSite site = new SPSite("http://fileserver/");
SPList list = site.OpenWeb("/Docs").Lists["修改建议文档"];
list.EventReceivers.Add(SPEventReceiverType.ItemDeleted, "Eallies.EventHandler.SP2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=24da4dca5bdd679d", "Eallies.EventHandler.SP2007.ListHandler");
list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, "Eallies.EventHandler.SP2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=24da4dca5bdd679d", "Eallies.EventHandler.SP2007.ListHandler");
}
}
}
创建Eallies.EventHandler.SP2007项目
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;

namespace Eallies.EventHandler.SP2007
{
public class ListHandler : SPItemEventReceiver
{

public static string szGlogal;



public override void ItemDeleting(SPItemEventProperties properties)
{
string NameField = properties.OpenWeb().Lists[properties.ListId].Fields.GetField("建议编号").InternalName;
string NameValue = properties.ListItem[NameField].ToString();
szGlogal = NameValue;
}


public override void ItemDeleted(SPItemEventProperties properties)
{

SPSite site = new SPSite("http://fileserver"/);
SPList list = site.OpenWeb("/Docs").Lists["修改建议数据"];
string QueryText = "<Where><Eq><FieldRef Name='" + list.Fields["建议编号"].InternalName + "'/><Value Type='Text'>"
+ szGlogal + "</Value></Eq></Where>";
SPQuery myQ = new SPQuery();
myQ.Query = QueryText;

SPListItemCollection items = list.GetItems(myQ);

int total = items.Count;

for (int i = total - 1; i >= 0; i--)

items.Delete(i);


}

}


}
ok, 特别指出最后循环一定要从大到小,时分关键,就是因为这个问题让我折腾了好久,慢慢理解其中理由.慢慢调试应该没问题.

posted on 2009-03-05 14:42  大头瓜  阅读(452)  评论(1编辑  收藏  举报