For that we
need List<> of String type i.e List<string> strArr = new
List<string>(); and one string
string
entireCAMLQuery = string.Empty; .
In strArr we
can Add the CAML query like
strArr.Add("<BeginsWith><FieldRef
Name='CandidateName' /><Value Type='Text'>" + filter.Value +
"</Value></BeginsWith>");
Then check
strArr is not equal to 0.
if (strArr.Count != 0)
{
entireCAMLQuery =
BuildingCAMLUsingStringArr(strArr);
query.Query = entireCAMLQuery.ToString();
query.ViewAttributes =
"Scope=\"Recursive\"";
// for fetch data from folder of SP list.
GetItemThroughtLoop(webSite, strList, query);
}
private string
BuildingCAMLUsingStringArr(List<string> strArr)
{
string caml = string.Empty;
try
{
if (strArr.Count == 1)
{
caml = strArr[0] ;
}
else if (strArr.Count > 1)
{
int count = strArr.Count -
1;
caml =
CAMLRecursiveCall(strArr, count) ;
}
}
catch { throw; }
finally { }
return
@"<View><Query><Where>" + caml +
"</Where></Query></View>";
}
private string
CAMLRecursiveCall(List<string> strArr,int count)
{
StringBuilder strBuild= new
StringBuilder();
if(count>0)
{
strBuild.Append("<And>");
strBuild.Append(CAMLRecursiveCall(strArr, count-1));
strBuild.Append(strArr[count]);
strBuild.Append("</And>");
}
else
strBuild.Append(strArr[count]);
return strBuild.ToString();
}
public void GetItemThroughtLoop(SPWeb webSite, string strList, SPQuery serachQuery)
{
string site = webSite.Url;
SPList List = webSite.Lists(strList);
SPListItemCollection collListItems = List.GetItems(serachQuery);
//TO DO : Do anything with list item collection
}