Friday, July 6, 2018

Building Dynamic CAML Query with "AND" or "OR" operator and multiple parameter in SharePoint

Building Dynamic CAML Query with "AND" or "OR" operator and multiple parameter in SharePoint



 private string BuildingDynamicCAMLQuery(string[] parameters)
        {
            // string[] parameters = new string[] { "file1", "file2"};
            StringBuilder sb = new StringBuilder();

            if (parameters.Length == 0)
            {
                // for default query
                AppendingEQoperator(sb, "all");
            }

            // "OR" each parameter to the query
            for (int i = 0; i < parameters.Length; i++)
            {
                AppendingEQoperator(sb, parameters[i]);

                if (i > 0)
                {
                    sb.Insert(0, "<Or>");
                    sb.Append("</Or>");
                }
            }

            sb.Insert(0, "<View><Query><Where>");
            sb.Append("</Where></Query></View>");

            return sb.ToString();
        }

 
        private void AppendingEQoperator(StringBuilder sb, string paramValue)
        {
            // put your field's internal name in place of Category
            sb.Append("<Eq>");
            sb.Append("<FieldRef Name='FileLeafRef'/>");
            sb.AppendFormat("<Value Type='File'>" + paramValue + "</Value>");
            sb.Append("</Eq>");

        }

No comments:

Post a Comment