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"); }
public SelectController(IShopModel shopModel, ISelectControl selectControl) { this.shopModel = shopModel; this.selectControl = selectControl; Initialize(); }