protected void btnAdd_Click(object sender, EventArgs e)
        {
            int nIndex = -1;
            Business.ComplexList complexList = GetComplexList(ref nIndex, false);
            if (complexList == null)
                return;

            Business.ComplexListItem item = new Business.ComplexListItem();

            item.Editable = true;
            item.Deletable = true;
            item.Selectable = true;
            item.Selected = true;
            item.Default = false;
            foreach (Business.ComplexListField field in complexList.Fields)
            {
                Business.ComplexListItemValue itemValue = new Business.ComplexListItemValue(complexList, field.FilterTerm);
                itemValue.BigText = field.BigText ?? false;
                itemValue.FieldID = field.ID;
                if (itemValue.DefaultValueDefined)
                    itemValue.FieldValue = itemValue.DefaultValue;
                else
                    itemValue.FieldValue = string.Empty;
                item.ItemValues.Add(itemValue);
            }
            complexList.Items.Add(item);

            int nRowIndex = complexList.Items.Count - 1;
            string listName = Request.QueryString[Common.Names._QS_COMPLEXLIST_NAME];
            string sQueryString = Utility.TextHelper.QueryString(true, Common.Names._QS_ITAT_SYSTEM_ID, ITATSystem.ID.ToString(), Common.Names._QS_MANAGED_ITEM_ID, this.ManagedItem.ManagedItemID.ToString(), Common.Names._QS_COMPLEXLIST_NAME, listName, Common.Names._QS_COMPLEXLIST_INDEX, nRowIndex.ToString());
            Context.Items[Common.Names._CNTXT_ManagedItem] = _managedItem;
            Context.Items[Common.Names._CNTXT_EditMode] = EditMode.Add;
            string sURL = string.Concat("~/ManagedItemComplexListEdit.aspx", sQueryString);
            IsChanged = true;
            Server.Transfer(sURL);
        }
        public void Load(Dictionary<string /*FieldName*/, string /*FieldValue*/> fieldValues)
        {
            if (fieldValues != null)
            {
                ComplexListItem item = new Business.ComplexListItem();

                foreach (Business.ComplexListField field in _fields)
                {
                    if (!fieldValues.ContainsKey(field.Name))
                        throw new Exception(string.Format("Field {0} not included in data", field.Name));
                    Business.ComplexListItemValue itemValue = new Business.ComplexListItemValue(this, field.FilterTerm);
                    itemValue.BigText = field.BigText ?? false;
                    itemValue.FieldID = field.ID;
                    itemValue.Load(fieldValues[field.Name]);
                    item.ItemValues.Add(itemValue);
                }
                _items.Add(item);
            }
        }