public static void AddExtendedListItemProperties(ISelectControl ctl)
        {
            if (ctl.DataSource == null ||
                (ctl.DataAutoFillFields == null || ctl.DataAutoFillFields.Length == 0) &&
                (ctl.DataGroupTextField == null || ctl.DataGroupTextField.Length == 0) &&
                (ctl.DataDetailIdFields == null || ctl.DataDetailIdFields.Length == 0))
            {
                return;
            }

            int i = 0;

            foreach (object obj in GetResolvedDataSource(ctl.DataSource, ctl.DataMember))
            {
                if (ctl.DataAutoFillFields != null && ctl.DataAutoFillFields.Length > 0)
                {
                    ctl.Items[i].Attributes.Add("jsmasterdetail:autofill-data", BuildFieldData(obj, ctl.DataAutoFillFields));
                }
                if (ctl.DataGroupTextField != null && ctl.DataGroupTextField.Length > 0)
                {
                    ctl.Items[i].Attributes.Add("-group-name", Convert.ToString(DataBinder.GetPropertyValue(obj, ctl.DataGroupTextField)));
                }
                if (ctl.DataDetailIdFields != null && ctl.DataDetailIdFields.Length > 0)
                {
                    ctl.Items[i].Attributes.Add("jsmasterdetail:detail-data", BuildFieldData(obj, ctl.DataDetailIdFields));
                }
                i++;
            }
        }
 public static void AddExtendedSelectControlAttributesToRender(ISelectControl ctl, HtmlTextWriter writer)
 {
     ctl.Attributes["onchange"] += "if (typeof(JsMasterDetail) != 'undefined') { if (!JsMasterDetail.handleEvent(this)) if(typeof(MasterDetail_MasterChanged) != 'undefined') MasterDetail_MasterChanged(this); } else if (typeof(MasterDetail_MasterChanged) != 'undefined') MasterDetail_MasterChanged(this);";
     if (ctl.SourceWebService != null)
     {
         ctl.Attributes["jsdatabind:source-ws"] = new NormalizeControlNames(ctl).Normalize(ctl.SourceWebService);
     }
 }
        public static void RenderSelectOptions(ISelectControl ctl, HtmlTextWriter writer)
        {
            bool   alreadySelected = false;
            bool   enableGrouping  = ctl.DataGroupTextField != null && ctl.DataGroupTextField.Length > 0;
            string lastGroup       = null;

            for (int i = 0; i < ctl.Items.Count; i++)
            {
                ListItem li = ctl.Items[i];
                if (enableGrouping && li.Attributes["-group-name"] != lastGroup)
                {
                    if (i > 1)
                    {
                        writer.WriteEndTag("optgroup");
                    }
                    lastGroup = li.Attributes["-group-name"];
                    writer.WriteBeginTag("optgroup");
                    writer.WriteAttribute("label", lastGroup, true);
                    writer.Write(HtmlTextWriter.TagRightChar);
                }

                writer.WriteBeginTag("option");
                if (li.Selected)
                {
                    if (alreadySelected && ctl.SelectionMode != ListSelectionMode.Multiple)
                    {
                        throw new InvalidProgramException(String.Format("Multiple ListItems selected in {0} '{1}'", ctl.GetType().FullName, ctl.ID));
                    }
                    alreadySelected = true;
                    writer.WriteAttribute("selected", "true", false);
                }
                writer.WriteAttribute("value", li.Value, true);

                foreach (string attrKey in li.Attributes.Keys)
                {
                    if (!attrKey.StartsWith("-"))
                    {
                        writer.WriteAttribute(attrKey, li.Attributes[attrKey], true);
                    }
                }

                writer.Write(HtmlTextWriter.TagRightChar);
                HttpUtility.HtmlEncode(li.Text, writer);
                writer.WriteEndTag("option");
                writer.WriteLine();
            }

            if (enableGrouping && ctl.Items.Count > 1)
            {
                writer.WriteEndTag("optgroup");
            }
        }
		public static void AddExtendedListItemProperties(ISelectControl ctl)
		{
			if (ctl.DataSource == null ||
				(ctl.DataAutoFillFields == null || ctl.DataAutoFillFields.Length == 0) && 
				(ctl.DataGroupTextField == null || ctl.DataGroupTextField.Length == 0) && 
				(ctl.DataDetailIdFields == null || ctl.DataDetailIdFields.Length == 0 ))
				return;

			int i = 0;
			foreach (object obj in GetResolvedDataSource(ctl.DataSource, ctl.DataMember))
			{
				if (ctl.DataAutoFillFields != null && ctl.DataAutoFillFields.Length > 0)
					ctl.Items[i].Attributes.Add("jsmasterdetail:autofill-data", BuildFieldData(obj, ctl.DataAutoFillFields));
				if (ctl.DataGroupTextField != null && ctl.DataGroupTextField.Length > 0)
					ctl.Items[i].Attributes.Add("-group-name", Convert.ToString(DataBinder.GetPropertyValue(obj, ctl.DataGroupTextField)));
				if (ctl.DataDetailIdFields != null && ctl.DataDetailIdFields.Length > 0)
					ctl.Items[i].Attributes.Add("jsmasterdetail:detail-data", BuildFieldData(obj, ctl.DataDetailIdFields));
				i++;
			}
		}
		public static void AddExtendedSelectControlAttributesToRender(ISelectControl ctl, HtmlTextWriter writer)
		{
			ctl.Attributes["onchange"] += "if (typeof(JsMasterDetail) != 'undefined') { if (!JsMasterDetail.handleEvent(this)) if(typeof(MasterDetail_MasterChanged) != 'undefined') MasterDetail_MasterChanged(this); } else if (typeof(MasterDetail_MasterChanged) != 'undefined') MasterDetail_MasterChanged(this);";
			if (ctl.SourceWebService != null)
				ctl.Attributes["jsdatabind:source-ws"] = new NormalizeControlNames(ctl).Normalize(ctl.SourceWebService);
		}
		public static void RenderSelectOptions(ISelectControl ctl, HtmlTextWriter writer)
		{
			bool alreadySelected = false;
			bool enableGrouping = ctl.DataGroupTextField != null && ctl.DataGroupTextField.Length > 0;
			string lastGroup = null;
			for (int i = 0; i < ctl.Items.Count; i++)
			{
				ListItem li = ctl.Items[i];
				if (enableGrouping && li.Attributes["-group-name"] != lastGroup) 
				{
					if (i > 1)
						writer.WriteEndTag("optgroup");
					lastGroup = li.Attributes["-group-name"];
					writer.WriteBeginTag("optgroup");
					writer.WriteAttribute("label", lastGroup, true);
					writer.Write(HtmlTextWriter.TagRightChar);
				}

				writer.WriteBeginTag("option");
				if (li.Selected)
				{
					if (alreadySelected && ctl.SelectionMode != ListSelectionMode.Multiple)
						throw new InvalidProgramException(String.Format("Multiple ListItems selected in {0} '{1}'", ctl.GetType().FullName, ctl.ID));
					alreadySelected = true;
					writer.WriteAttribute("selected", "true", false);
				}
				writer.WriteAttribute("value", li.Value, true);

				foreach (string attrKey in li.Attributes.Keys)
					if (!attrKey.StartsWith("-"))
						writer.WriteAttribute(attrKey, li.Attributes[attrKey], true);
				
				writer.Write(HtmlTextWriter.TagRightChar);
				HttpUtility.HtmlEncode(li.Text, writer);
				writer.WriteEndTag("option");
				writer.WriteLine();
			}

			if (enableGrouping && ctl.Items.Count > 1)
				writer.WriteEndTag("optgroup");
		}
Example #7
0
 public SelectController(IShopModel shopModel, ISelectControl selectControl)
 {
     this.shopModel     = shopModel;
     this.selectControl = selectControl;
     Initialize();
 }