protected void btnContinue_Click(object sender, EventArgs e) { Business.TermType termType = (Kindred.Knect.ITAT.Business.TermType)Enum.Parse(typeof(Kindred.Knect.ITAT.Business.TermType), ddlTermType.SelectedValue); switch (_termEdit.TermHandler) { case BaseTermEditPage.TermHandler.BasicTerm: //Note - similar code checks are made at the 'BaseTermEditPage' SetContextDataAndReturn call if (_template.BasicTermExists(txtTermName.Text)) RegisterAlert(string.Format("The term name '{0}' is already being used. You must select a different term name.", txtTermName.Text)); //20070810_DEG Bug #131 Add code here to check for 'first quote' char cFirst = '\"'; if (_template.BasicTerm_FirstChar_Exists(txtTermName.Text, cFirst)) RegisterAlert(string.Format("The term name (up to the first character - ' {0} ') '{1}' is already being used. You must select a different term name.", cFirst, Business.Term.NameAtFirstChar(txtTermName.Text, cFirst))); if (_template.ComplexListTermNameInUse(txtTermName.Text, null)) RegisterAlert(string.Format("The term name '{0}' is already being used in the Complex List. You must select a different term name.", txtTermName.Text)); if (!Business.Term.ValidName(txtTermName.Text)) RegisterAlert(string.Format("\"{0}\" is not a valid term name.", txtTermName.Text)); if (this.AlertCount > 0) return; //Check to see if the selected term type is an External Term. if (termType == Business.TermType.External) { Business.ExternalTerm externalTerm = new Business.ExternalTerm(false, _itatSystem.FindExternalInterfaceConfig(ddlTermType.SelectedItem.Text), this.Template as Business.ManagedItem, this.Template, false); //note: if "this.Template" is a Template and not a ManagedItem, "this.Template as ManagedItem" equals null. externalTerm.Name = txtTermName.Text; externalTerm.TermType = Business.TermType.External; _template.BasicTerms.Add(externalTerm); } else { Business.Term newTerm = Helper.CreateTerm(termType, false, _template.IsManagedItem, _template, false); newTerm.Name = txtTermName.Text; _template.BasicTerms.Add(newTerm); } _template.Refresh(); _termEdit.TermIndex = _template.BasicTerms.Count - 1; //item just added break; case BaseTermEditPage.TermHandler.ComplexList: throw new Exception(string.Format("TermHandler '{0}' is not handled", _termEdit.TermHandler.ToString())); case BaseTermEditPage.TermHandler.ComplexListField: Business.ComplexList complexList = _template.ComplexLists[_termEdit.TermIndex] as ComplexList; //Trim leading and trailing spaces from the name to assist in locating the name within the rendering text. string fieldName = txtTermName.Text.Trim(); if (complexList.FindField(fieldName) != null) RegisterAlert(string.Format("The field name '{0}' is already being used. You must select a different field name.", txtTermName.Text)); if (this.AlertCount > 0) return; Business.ComplexListField complexListField = new ComplexListField(complexList); complexListField.FilterTerm = Helper.CreateTerm(termType, false, _template.IsManagedItem, _template, true); complexListField.Name = fieldName; complexList.Fields.Add(complexListField); complexList.AddFieldToCurrentItems(complexListField.ID, false, complexListField.FilterTerm); _termEdit.ComplexListFieldIndex = complexList.Fields.Count - 1; //item just added break; case BaseTermEditPage.TermHandler.ComplexListItem: throw new Exception(string.Format("TermHandler '{0}' is not handled", _termEdit.TermHandler.ToString())); } Context.Items[Common.Names._CNTXT_Template] = _template; Context.Items[Common.Names._CNTXT_TermEdit] = _termEdit; SetTermGroupInContext(); Server.Transfer(Helper.TemplateTermEditPage(termType)); }
protected string GetFieldValue(ComplexListField field) { string result = ""; switch (field.FilterTerm.TermType) { case TermType.Text: result = Request.Form[Helper.ControlID(field.Name, field.FilterTerm.TermType)]; break; case TermType.PickList: result = Request.Form[Helper.ControlID(field.Name, field.FilterTerm.TermType)]; break; case TermType.Date: result = Request.Form[Helper.ControlID(field.Name, field.FilterTerm.TermType)]; break; } return result; }
internal static Panel CreateDateComplexListFieldControl(ComplexListField field) { Panel pnl = new Panel(); pnl.ID = ControlID(field.Name) + "_pnl"; //write textbox to contain date TextBox txtDate = new TextBox(); //pnl.Controls[0] txtDate.Style["width"] = "114px"; txtDate.Style["height"] = "18px"; txtDate.Style["padding-top"] = "0"; txtDate.MaxLength = 12; txtDate.ID = ControlID(field.Name); txtDate.Attributes["onfocus"] = "javascript:this.select();"; pnl.Controls.Add(txtDate); //write "button" image and click event that will display calendar IFRAME Image imgDate = new Image(); //pnl.Controls[1] imgDate.Style["cursor"] = "hand"; imgDate.ID = ControlID(field.Name) + "_img"; imgDate.ImageUrl = "/Global/bin/Calendar/calendar.gif"; imgDate.Height = Unit.Parse("19px"); imgDate.Width = Unit.Parse("34px"); imgDate.ImageAlign = ImageAlign.Top; imgDate.BorderWidth = Unit.Parse("0px"); imgDate.Attributes["onclick"] = string.Format("window.event.cancelBubble=true; ShowCalendar(document.all.CalFrame, window.frames.CalFrame, null, document.getElementById('{0}'), null, -600, 3600);", txtDate.ClientID); pnl.Controls.Add(imgDate); return pnl; }
internal static TextBox CreateTextComplexListFieldControl(ComplexListField field) { TextBox txt = new TextBox(); txt.ID = ControlID(field.Name); switch (((TextTerm)field.FilterTerm).Format) { case TextTermFormat.Plain: txt.Width = Unit.Percentage(100); break; case TextTermFormat.Number: txt.Width = Unit.Pixel(120); break; case TextTermFormat.Currency: txt.Width = Unit.Pixel(120); break; case TextTermFormat.SSN: txt.Width = Unit.Pixel(120); break; case TextTermFormat.Phone: txt.Width = Unit.Pixel(120); break; case TextTermFormat.PhonePlusExtension: txt.Width = Unit.Pixel(200); break; default: break; } return txt; }
internal static Panel CreatePickListComplexListFieldControl(ComplexListField field) { Panel pnl = new Panel(); pnl.ID = ControlID(field.Name); PickListTerm pickListTerm = (PickListTerm)field.FilterTerm; if (pickListTerm.PickListItems.Count == 1) //1 picklist item: single check box { CheckBox chk = new CheckBox(); chk.BorderStyle = BorderStyle.None; chk.ID = pnl.ID + "_lst"; // ???? chk.CssClass = Common.Names._STYLE_CSSCLASS_EDIT; chk.Text = pickListTerm.PickListItems[0].Value; pnl.Controls.Add(chk); } else { if (pickListTerm.MultiSelect ?? false) // multi-select picklist: MultiSelectGrid control { pnl.Height = Unit.Pixel(4 + 20 * Math.Min(4, pickListTerm.PickListItems.Count)); pnl.Width = Unit.Percentage(100.0); MultiSelectGrid grd = new MultiSelectGrid(); grd.ID = pnl.ID + "_lst"; grd.CheckboxColumn = 0; grd.DataSource = pickListTerm.PickListItems; grd.BoundColumns = "Value"; //grd.DataKeyNames = new string[] { "Value" }; grd.Container = pnl.ID; grd.HeaderContainer = ""; grd.AutoGenerateColumns = false; grd.RowHighlighting = false; grd.EnableClickEvent = false; grd.EnableDoubleClickEvent = false; grd.EnableHeaderClick = false; grd.ShowHeader = false; grd.ColumnWidths = "100%"; grd.DataBind(); pnl.Controls.Add(grd); } else { if (pickListTerm.PickListItems.Count == 2) //2 item single-select picklist: RadioButtonList { RadioButtonList rdolst = new RadioButtonList(); rdolst.ID = pnl.ID + "_lst"; rdolst.CellPadding = 0; rdolst.CellSpacing = 0; rdolst.RepeatDirection = RepeatDirection.Vertical; AddListItems(rdolst, pickListTerm.PickListItems); pnl.Controls.Add(rdolst); } else // 3 or more item single-select list: DropDrownList { DropDownList ddl = new DropDownList(); ddl.ID = pnl.ID + "_lst"; ddl.Width = Unit.Percentage(100.0); ddl.Items.Add(new ListItem("(Select One)", "")); AddListItems(ddl, pickListTerm.PickListItems); pnl.Controls.Add(ddl); } } } return pnl; }
public ComplexList(XmlNode node, Template template, bool isFilter) : base(node, template, isFilter) { TermType = TermType.ComplexList; NameRequired = true; _columnCount = Utility.XMLHelper.GetAttributeInt(node, XMLNames._A_ColumnCount); _showOnItemSummary = Utility.XMLHelper.GetAttributeBool(node, XMLNames._A_ShowOnItemSummary); _fields = new List<ComplexListField>(); XmlNodeList nodeFields = node.SelectNodes(Utility.XMLHelper.GetXPath(false, XMLNames._E_Fields, XMLNames._E_Field)); if (nodeFields != null) { foreach (XmlNode nodeField in nodeFields) { ComplexListField field = new ComplexListField(nodeField, this); _fields.Add(field); } } _items = new List<ComplexListItem>(); XmlNodeList nodeItems = node.SelectNodes(Utility.XMLHelper.GetXPath(false, XMLNames._E_Items, XMLNames._E_Item)); if (nodeItems != null) { foreach (XmlNode nodeItem in nodeItems) { ComplexListItem item = new ComplexListItem(nodeItem, this); //Set the BigText value stored within each itemValue - for use by the interface foreach (ComplexListItemValue itemValue in item.ItemValues) { if (!itemValue.FieldIDDefined) { itemValue.BigText = FindField(itemValue.FieldName).BigText ?? false; itemValue.RemoveBlank = FindField(itemValue.FieldName).RemoveBlank ?? false; } else { itemValue.BigText = FindField(itemValue.FieldID).BigText ?? false; itemValue.RemoveBlank = FindField(itemValue.FieldID).RemoveBlank ?? false; } } _items.Add(item); } } foreach (ComplexListItem item in _items) { foreach (ComplexListItemValue itemValue in item.ItemValues) { if (!itemValue.FieldIDDefined) { itemValue.FieldID = FindField(itemValue.FieldName).ID; } } } XmlNode nodeRendering = node.SelectSingleNode(XMLNames._E_Rendering); if (nodeRendering != null) { _rendering = Utility.XMLHelper.GetText(nodeRendering); _rendering = ComplexListField.EmbedFieldNames(this, _rendering); } XmlNode nodeStandardHeader = node.SelectSingleNode(XMLNames._E_StandardHeader); if (nodeStandardHeader != null) { _standardHeader = Utility.XMLHelper.GetText(nodeStandardHeader); _standardHeader = ComplexListField.EmbedFieldNames(this, _standardHeader); } XmlNode nodeAlternateHeader = node.SelectSingleNode(XMLNames._E_AlternateHeader); if (nodeAlternateHeader != null) { _alternateHeader = Utility.XMLHelper.GetText(nodeAlternateHeader); _alternateHeader = ComplexListField.EmbedFieldNames(this, _alternateHeader); } }