jueves, 8 de julio de 2010

Ordenar listas en MOSS 2007

Si alguna vez nos hemos fijado en una lista de links, esta incorpora una action que nos permite ordenarla. Esta action lo que nos hace es llevarnos a una application page llamada reorder.aspx.

Luego puedes utilizar el campo order para ordenar los items en una content query webpart por ejemplo.

Tirando un poco más del hilo observas que toda item de cualquier lista, contiene ese campo order.

Y aquí es donde surge la pregunta: ¿por qué los señores de Redmond no han incorporado esto a todas las listas y así poder usar esta ordenación en las content query webparts?

Pensando que ha sido un despite, nos decidimos a incorporar esta funcionalidad a todas las listas creando una custom action y añadiendola a todas las listas. Pero cuál fue nuestro despiste que vimos que esta ordenación funcionaba bien excepto para las document libraries.

Haciendo un poquito de debugging y reflectoring vimos que el problema reside en el método que usa para ordenar las listas, este método es un método de la clase SPListItemCollection, el método se llama ReorderItems.

Ahora ya habiamos cruzado ese umbral que es más facil seguir para adelante que volverse para atrás así que nos decidimos a rehacer ese algoritmo de ordenación para que funcionase también con las document libraries.

En definitiva los artefactos que hemos creado han sido:

- Una custom action que se añade a todas las listas y su correspondiente feature
- Un page adapter para capturar el submit de la página reorder.aspx y a partir de aquí llamar a nuestro nuevo algoritmo de reordenación.
- Un extensión method para SPListItemCollection que implementa el algoritmo de ordenación.

3 comentarios:

Fidel dijo...

Hola!
Estaba navegando por internet en busca de información sobre certificaciones de Microsoft para poder aumentar mi formación, actualmente soy ingeniero de telecomunicaciones, y he encontrado su blog. La razón por que la que le escribo y espero que no le importe, por dejarle un comentario en su blog, es la siguiente, si sería tan amable de ponerse en contacto conmigo para infórmame sobre Microsoft en general, se que el tema es muy amplio pero usted es un profesional que trabaja en ello y creo que me puede orientar si no es mucha molestia. Gracias por su tiempo y espero no molestarle.Un saludo

Jordi Ruiz dijo...

Hola Fidel,

como bien comentas el tema es muy amplio, si estás interesado en algún tema en particular sería mucho más facil ofrecerte información, ¿por ejemplo que temas son de tu agrado? ¿Desarrollo en .net? ¿Infraestructuras? ¿Estas pensando en certificarte en alguna tecnología en concreto? ¿Eres nuevo y te interesaria un poco el roadmap tecnológico?

Saludos,

Fidel dijo...

hola!
Soy fidel de nuevo como no se si te llego mi correo te dejo mi email fisal86@gmail.com, gracias.