none
Activar la clasificacion de elementos en una lista/libreria (Rating) RRS feed

  • Pregunta

  • Hola me gustaria saber, como se puede activar la opcion "Permitir clasificación de elementos de esta lista" o tambien conocido funcionalidad de rating en una lista a través de codigo. He estado revisando los metodos/propiedades del objeto SPList pero no veo nada que me pueda valer...

    Muchas gracias


    Un saludo Oscar
    lunes, 19 de septiembre de 2011 15:59

Respuestas

  • Hola,

    Por lo que he visto, se puede hacer siguiendo este workaround: http://www.c-sharpcorner.com/UploadFile/bhushangawale/9047/ ¿es lo que necesitabas? Aunque esta otra alternativa me parece más elegante: http://www.habaneros.com/blog/posts/Enabing_SharePoint_2010_list_rating_programatically.aspx

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    lunes, 19 de septiembre de 2011 16:34
  • Hola Juan Carlos, justo esto es lo que necesitaba... en vez de usar reflexion, he decidido usar el metodo tradicional, aunque he modificado el codigo para dejarlo mas limpio y evitar tener que definir los GUIDs de los campos de rating... 

    aquí lo dejo para quien lo necesite:

      private void EnableRating(SPList list)

      {
        SPFieldCollection listfields = list.Fields;
        SPFieldCollection availfields = list.ParentWeb.AvailableFields;
        if (!listfields.Contains(FieldId.AverageRatings))
        {
          SPField field = availfields[FieldId.AverageRatings];
          list.Fields.AddFieldAsXml(field.SchemaXmlWithResourceTokens, true,SPAddFieldOptions.AddFieldToDefaultView | SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
        }
        if (!listfields.Contains(FieldId.RatingsCount) && availfields.Contains(FieldId.RatingsCount))
        {
          SPField field2 = availfields[FieldId.RatingsCount];
          list.Fields.AddFieldAsXml(field2.SchemaXmlWithResourceTokens, false,SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
        }
          list.Update();
       }


    Un saludo Oscar
    martes, 20 de septiembre de 2011 11:02

Todas las respuestas

  • Hola,

    Por lo que he visto, se puede hacer siguiendo este workaround: http://www.c-sharpcorner.com/UploadFile/bhushangawale/9047/ ¿es lo que necesitabas? Aunque esta otra alternativa me parece más elegante: http://www.habaneros.com/blog/posts/Enabing_SharePoint_2010_list_rating_programatically.aspx

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    lunes, 19 de septiembre de 2011 16:34
  • Hola Juan Carlos, justo esto es lo que necesitaba... en vez de usar reflexion, he decidido usar el metodo tradicional, aunque he modificado el codigo para dejarlo mas limpio y evitar tener que definir los GUIDs de los campos de rating... 

    aquí lo dejo para quien lo necesite:

      private void EnableRating(SPList list)

      {
        SPFieldCollection listfields = list.Fields;
        SPFieldCollection availfields = list.ParentWeb.AvailableFields;
        if (!listfields.Contains(FieldId.AverageRatings))
        {
          SPField field = availfields[FieldId.AverageRatings];
          list.Fields.AddFieldAsXml(field.SchemaXmlWithResourceTokens, true,SPAddFieldOptions.AddFieldToDefaultView | SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
        }
        if (!listfields.Contains(FieldId.RatingsCount) && availfields.Contains(FieldId.RatingsCount))
        {
          SPField field2 = availfields[FieldId.RatingsCount];
          list.Fields.AddFieldAsXml(field2.SchemaXmlWithResourceTokens, false,SPAddFieldOptions.AddFieldInternalNameHint | SPAddFieldOptions.AddToAllContentTypes);
        }
          list.Update();
       }


    Un saludo Oscar
    martes, 20 de septiembre de 2011 11:02
  • Oscar,

    Si tienes blog podrías postearlo, si no lo hago yo en mi blog referenciando este thread.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    martes, 20 de septiembre de 2011 11:39
  • Hola Juan Carlos, no hay problema, publicalo en tu blog ya que la gente lo localizará antes que en el mio ;)

    Un saludo


    Un saludo Oscar
    martes, 20 de septiembre de 2011 13:10