Eventos SharePoint

26/03/2008 - 12:53 por Tito | Informe spam
Buenas otra vez, tango una duda en programación de eventos en SharePoint.
He conseguido muchas cosas gracias a la captura de eventos, con temas como
listas y nuevos elementos, pero ahora hay un sitio del cual no soy capaz a
pasar.

Resulta que quiero que determinadas personas en determinados grupos no
modifiquen algunos campos, para ello uso el evento del
Spitemeventreceiver.itemupdating, pero este evento, al comprobar el campo, es
el nuevo del cambio, y necesitaba tener el valor que tenia anterormente a
recibir el evento, y si lo recive y lo modifica entonces cancelo la acción.

He visto por ahi el BeforeProperties, pero tambien he leido que es solo para
biblioteca de documentos y a mi me interesa que sean listas normales, de
elementos, existe algo parecido?, gracias otra vez.

Preguntas similare

Leer las respuestas

#1 Gustavo
26/03/2008 - 22:10 | Informe spam
Hola Tito,
Es cierto, el BeforeProperties solo se conserva en Librerias de Documentos
(el AfterProperties si se conserva en ambas, Listas y Librerias).
Lo unico que se me ocurre es algo complicado, pero podria funcionar: crear
una lista "espejo", que no sea visible para los usuarios, y que mantenga una
copia de los datos de la lista de verdad. Cuando algo cambie, miras en la
lista espejo, y puedes comprobar que ha pasado. La sincronizacion entre las
listas la tienes que garantizar con los eventos mismos (cuando pasa algo en
la lista de verdad, tiene que ser duplicado en la espejo).
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Tito" wrote:

Mostrar la cita
#2 Tito
26/03/2008 - 23:20 | Informe spam
Gracias Gustavo y una duda, si AfterProperties funciona no podria hacer esto
en el updatingEvent:

if(item["nombre"]==properties.afterproperties)

Se supone que el evento updating es antes de que cambie el valor y deberia
mantener el anterior no?¿.
Gracias por las respuestas y un saludo.


"Gustavo" wrote:

Mostrar la cita
#3 Gustavo
27/03/2008 - 09:18 | Informe spam
Hola Tito,
No, los valores originales no son conservados alli. AfterProperties lo usas
para configurar valores para las propiedades que seran modificadas al final
del proceso, asi que si lo examinas al principio en la forma que dices veras
que simplemente no existe.
Entre otras cosas, AfterProperties es un hash table, asi que tienes que
usarlo dandole el valor de identificacion:
if(item["nombre"]==properties.AfterProperties["nombre'])...
Saludes,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Tito" wrote:

Mostrar la cita
#4 Elecktrus
28/03/2008 - 22:39 | Informe spam
Hola, Tito:
Una sugerencia, que quiza te funcione. Si en el evento updating, recuperas
el id del item modificado y atacas a la lista de la forma normal (navegas al
sitio, recuperas la lista, recorres los items hasta llegar al tuyo,etc)
podras leer las propiedades actuales (no se han modificado todavia ya que tu
estas en el evento que las modifica) y las puedes comparar con las que te
llegan como parametros en el evento, para ver las que han cambiado

"Tito" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida