另一个问题。
所以现在我的EventReceiver及其逻辑工作正常。除了一件事。
基本上,它通过CAML查询来查询整个列表,然后将结果传递给DataTable对象,然后传递给DataRow对象...
像所有其他程序一样,它在测试环境中完美运行,但在生产中……
发生的事情是我需要更新的列得到更新,但没有立即显示。 item列会收到我想要的值,但是在第一次刷新时不会显示,您必须再次刷新页面,然后它才会显示...
唯一的区别是在teste env中。我的清单有200条记录,而在生产中,它有近5000条记录。
一些问题:
有没有一种方法可以定义您想要多少条记录?在CAML中还是在DataTable对象中?类似于“ SELECT TOP 100 ...”
如果不是,是否有办法使刷新过程停止并等待代码执行?
一些信息:
它是WSS 3.0,我拦截的事件是ItemAdded,它解释了刷新不等待我的代码。
哦,考虑更改为ItemAdding事件会有点问题,因为我需要捕获记录的ID,而该ID在ItemAdding中尚不可用,因为列表项尚未提交到数据库。
提前致谢。
最佳答案
这里的问题是“ GetDataTable()”方法。当我运行CAML查询并用结果填充数据表时,它将失去修饰符的顺序。但是,如果我使用SPListItemCollection对象得到结果,它将按我想要的方式返回该行。
从另一篇文章中可以看到...“这是一个令人讨厌的问题”。