CString CTemplateLoopContext::GetValue(const CString& sName, bool bFromIf) { CTemplate* pTemplate = GetCurRow(); if (!pTemplate) { DEBUG("Loop [" + GetName() + "] has no row index [" + CString(GetRowIndex()) + "]"); return ""; } if (sName.Equals("__ID__")) { return CString(GetRowIndex() +1); } else if (sName.Equals("__COUNT__")) { return CString(GetRowCount()); } else if (sName.Equals("__ODD__")) { return ((GetRowIndex() %2) ? "" : "1"); } else if (sName.Equals("__EVEN__")) { return ((GetRowIndex() %2) ? "1" : ""); } else if (sName.Equals("__FIRST__")) { return ((GetRowIndex() == 0) ? "1" : ""); } else if (sName.Equals("__LAST__")) { return ((GetRowIndex() == m_pvRows->size() -1) ? "1" : ""); } else if (sName.Equals("__OUTER__")) { return ((GetRowIndex() == 0 || GetRowIndex() == m_pvRows->size() -1) ? "1" : ""); } else if (sName.Equals("__INNER__")) { return ((GetRowIndex() == 0 || GetRowIndex() == m_pvRows->size() -1) ? "" : "1"); } return pTemplate->GetValue(sName, bFromIf); }