2009-07-30 10 views
5

Tengo un problema que alguien podría haber resuelto (o eso espero). Tengo un campo de fecha y hora que utilizo en un tipo de contenido (en una plantilla de lista) que tiene su propia forma de edición.Establecer el valor del campo datetime para anular

tope aquí tienes un tutorial de lo que sucede:

  1. Adición de un valor de fecha y hora a la columna y guardar el valor actualizado aparece (como se esperaba).
  2. Actualizando la columna de fecha y hora y agregando nulo (vaciando el valor) a través de la forma de edición. El valor no se actualiza, sino que muestra el valor anterior.

he hecho un poco de experimentar con esto y llegué a la conclusión de que si añado un EventReceiver y trato de actualizar el valor que hay que Indiferente incluso entrar en el EventReceiver como una cadena en blanco (que tenía una idea de que el el valor es como una cadena en blanco y Sharepoint no puede analizarlo en un datetime nulo) lo que me lleva a pensar que hay un problema con el control de campo que causa esto. También encontré el artículo this en MSDN que parece estar relacionado con el mismo problema. Y también, el campo de fecha y hora en el tipo de contenido no es obligatorio.

¿Alguna idea o sugerencia?

ACTUALIZACIÓN:

Aparentemente esto sólo sucede cuando se utiliza un EditForm personalizado. Cuando uso uno de los listtemplates integrados esto funciona como un encanto.

Respuesta

0

Después de una investigación profunda, he encontrado que la raíz de este problema está relacionada con el hecho de que estaba usando la propagación del nodo XML entre las columnas en la lista y el archivo xml real. Tenía prevoiusly estado luchando con esto con respecto a los campos de texto stardard y pensé que me había encargado del problema ... al parecer no. Aparentemente, los campos DateTime no se enviarán al receptor de eventos afterproperties si es nulo, ya que mi código no lo recogerá como un valor nulo. Tuve que tomar ese caso y agregarlos a afterproperties si no puedo encontrarlos en afterproperties. Haré una serie de blogpost sobre estos temas y publicaré los enlaces a esta publicación en breve.

ACTUALIZACIÓN:

ahora he completado una entrada de blog acerca de cómo he resuelto este problema. No dude en echarle un vistazo: http://johanleino.wordpress.com/2009/08/24/node-demotion-does-not-work-with-blank-empty-values/

1

He tenido problemas similares con esto en el pasado. De hecho, es un error conocido. Una alternativa es establecer el campo en el valor mínimo o máximo del tipo y verificar este valor donde sea necesario y realizar las conversiones adecuadas. Dependiendo de su configuración y uso, puede crear un desencadenador para convertir valores mínimos/máximos en nulos y así minimizar el código requerido para manejar tal trabajo.

Cuestiones relacionadas