Do not panic. There is an easy way: appending ?contents=1 to your URL query string will enter the "Web Part Page Maintenance" and from here you can just reset or delete the culprit web part.
![]() |
| Web Part Page Maintenance |
![]() |
| Web Part Page Maintenance |
private string CreateNestedCAMLJoins(List<string> myConditionList, string beginTag, string endTag)
{
string CAML = string.Empty;
string currentCondition = String.Empty;
Stack myStackOne = new Stack();
Stack myStackTwo = new Stack();
Stack myStackThree = new Stack();
foreach (var myItem in myConditionList)
{
myStackOne.Push(myItem);
}
bool doLoop = true;
try
{
while (true)
{
if (myStackOne.Count == 0 && myStackTwo.Count == 0 && myStackThree.Count == 1)
{
CAML = myStackThree.Pop().ToString();
doLoop = false;
break;
}
else if (((myStackOne.Count == 0 || myStackOne.Count == 1) && myStackThree.Count >= 1) && myStackTwo.Count == 0)
{
for (int i = 1; i <= myStackThree.Count; i++)
{
myStackOne.Push(myStackThree.Pop().ToString());
}
}
else if (myStackOne.Count == 0 && myStackThree.Count == 0)
{
foreach (var myItemOnStackThree in myStackThree)
{
CAML += myItemOnStackThree;
}
doLoop = false;
}
else if (myStackOne.Count == 1 && myStackThree.Count == 1)
{
myStackOne.Push(myStackThree.Pop().ToString());
}
if (myStackTwo.Count == 0)
{
myStackTwo.Push(endTag);
}
else if (myStackTwo.Count == 3)
{
myStackTwo.Push(beginTag);
currentCondition = String.Empty;
foreach (var caml in myStackTwo)
{
currentCondition += caml;
}
myStackThree.Push(currentCondition);
myStackTwo.Clear();
}
else
{
myStackTwo.Push(myStackOne.Pop().ToString());
}
}
}
catch (Exception ex)
{
throw new Exception("<your message>");
}
return CAML;
}