none
Error en feature!!! RRS feed

  • Pregunta

  • Hola a toda la comunidad:

    Estoy desarrollando una feature que busque en portal web en todas las listas que aparezca  el un campo  llamado Detalles, que oculte ese campo y solo lo muestre en determinadas partes como le indico...Este es el codigo que he puesto

     SPWeb oweb = (SPWeb)properties.Feature.Parent;

                SPListCollection lists = oweb.Lists;

                foreach (SPList unaLista in lists)
                {
                    SPField field = unaLista.Fields.GetField("Detalles");
                    field.ShowInDisplayForm = false;
                    field.ShowInEditForm = false;
                    field.ShowInListSettings = true;
                    field.ShowInNewForm = false;
                    field.ShowInVersionHistory = true;
                    field.ShowInViewForms = true;
                    field.Update();

                }

     

    pero cuando lo despliego en el sitio me da un error:

    Collection was modified; enumeration operation may not execute.

    Alguien sabe porque sucede esto??

    De antemano muchas gracias por su ayuda !!

    Christina !!

     

       
     

     


    Christina Torres
    martes, 15 de marzo de 2011 19:50

Respuestas

  • Hola Christina,

    Yo te recomendaría realizar otra cosa:

    No sé si conoces la herramienta  Sharepoint Manager, pero es una herramienta estupenda que te permite realizar un montón de cosas en Sharepoint, entre otras, ocultar campos de las listas o bibliotecas que quieras, se instala en el servidor donde está sharepoint, y puedes recorrer todo lo que contiene ese servidor, en cuanto a listas, jobs, features, etc...

    Puedes verlo y descargarlo aquí: http://spm.codeplex.com/

    Pruébalo y si hay algo que no entiendes como funciona me dices, pero yo, para casos de ocultar campos es lo que utilizo.

    Saludos


    Sergio Gallego
    miércoles, 16 de marzo de 2011 9:10

Todas las respuestas

  • Hola Christina,

    ¿has intentado depurar la fetaure para ver en que momento te da el error? Se depura igual que una WebPart.

    Un saludo!

    martes, 15 de marzo de 2011 21:28
  • Hola Juan Carlos Si depure el error salta cuando pasa por el foreach, no puede recorrer la coleccion de listas ..
    Christina Torres
    martes, 15 de marzo de 2011 21:33
  • Buenas,

    Eso es porque en la colección hay alguna lista que no puedes recorrer mediante un ForEach...¿En qué momento te está saltando la excepción?

     

    Saludos!

    martes, 15 de marzo de 2011 22:21
  • Christina,

    el problema te aparece porque modificas una colección mientras la estás recorriendo, y eso no está permitido. Puedes intentar hacer algo como:

                 foreach (SPList unaLista in lists)
                {

                    SPList copia = unaLista;


                    SPField field = copia.Fields.GetField("Detalles");
                    field.ShowInDisplayForm = false;
                    field.ShowInEditForm = false;
                    field.ShowInListSettings = true;
                    field.ShowInNewForm = false;
                    field.ShowInVersionHistory = true;
                    field.ShowInViewForms = true;
                    field.Update();

                }

    A ver si te funciona...

    Saludos,
    David Martos | http://david-martos.blogspot.com | @davidmartos

    miércoles, 16 de marzo de 2011 7:35
  • Hola Christina,

    Yo te recomendaría realizar otra cosa:

    No sé si conoces la herramienta  Sharepoint Manager, pero es una herramienta estupenda que te permite realizar un montón de cosas en Sharepoint, entre otras, ocultar campos de las listas o bibliotecas que quieras, se instala en el servidor donde está sharepoint, y puedes recorrer todo lo que contiene ese servidor, en cuanto a listas, jobs, features, etc...

    Puedes verlo y descargarlo aquí: http://spm.codeplex.com/

    Pruébalo y si hay algo que no entiendes como funciona me dices, pero yo, para casos de ocultar campos es lo que utilizo.

    Saludos


    Sergio Gallego
    miércoles, 16 de marzo de 2011 9:10
  • Hola  Sergio:

    Ya conocia sobre SharePoint Maneger pero no lo  había utilizado .. pero he probado y me sirvio para lo que yo quería ... si tienes algún post sobre otras funcionalidades que tiene esta herramienta o algun manual te agradecería que me lo facilites ..

    Muchas gracias por la respuesta..

    Saludos

    Christina


    Christina Torres
    miércoles, 16 de marzo de 2011 14:06
  • Hola Christina,

    De nada.

    No tengo ningún post ni manual para utilizarla, simplemente voy viendo las utilidades que tiene según voy necesitando algo, aunque si encuentro algo ya lo postearé aquí, ya que la veo muy interesante.

    Saludos


    Sergio Gallego
    miércoles, 16 de marzo de 2011 14:47