Mostrar mensagens com a etiqueta SharePoint 2010. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta SharePoint 2010. Mostrar todas as mensagens

quinta-feira, 24 de novembro de 2011

SharePoint 2010: Operador In, Caml

O SharePoint 2010 apresenta um novo operador nas Caml queries.
O operador em questão é o operador In que evita que tenhamos de escrever múltiplos Or.

Por exemplo, se tivermos o campo chamado Browser do tipo Text e quisermos procurar  os registos que têm  a palavra Firefox ou a palavra Chrome escrevemos a seguinte Caml query.

<Where>
  <In>
    <FieldRef Name='Browser' />
    <Values>
      <Value Type='Text'>Firefox</Value>
      <Value Type='Text'>Chrome</Value>
    </Values>
  </In>
</Where>

Como nem sempre as nossas queries são estáticas apresento uma forma de gerar o operador In dinamicamente através de uma coleção.

public static string InCaml(IEnumerable<string> items, string type, string name)
{
    string inFormat = "<Value Type='{0}'>{1}</Value>";

    var values = new StringBuilder();
    values.Append("<Values>");
    foreach (string item in items)
    {
        values.AppendFormat(inFormat, type, item);
    }
    values.Append("</Values>");

    var fieldRef = string.Format("<FieldRef Name='{0}' />", name);

    return string.Format("<In>{0}{1}</In>", fieldRef, values.ToString());
}


Exemplo de como chamar o método InCaml.

InCaml(new string[] { "Firefox""Chrome" }, "Text""Browser");

domingo, 30 de outubro de 2011

SharePoint 2010: Esconder a Ribbon dos utilizadores anónimos

No SharePoint 2010, para esconder a ribbon dos utilizadores anónimos é necessário utilizar o controlo LoginView do ASP.net.

No AnonymousTemplate colocasse a seguinte regra de CSS #s4-ribbonrow { display: none;} para esconder a ribbon.
Exemplo:
    <asp:LoginView ID="Loginview1" runat="server">
        <AnonymousTemplate>
            <style type="text/css">
                #s4-ribbonrow
                {
                    display: none;
                }
            </style>
        </AnonymousTemplate>
    </asp:LoginView>