public override string ResolveBinding(ControlCollection coll, object dataContext) { string text = null; if (dataContext != null) { // it has dependent if (!string.IsNullOrEmpty(Dependent)) { var ctrls = coll.Where(p => p.Name == Dependent).Select(s => s); if (ctrls.Count() > 0) { // must be combobox var textBox = ctrls.First() as TextBox; if (textBox != null) { DependentOf = textBox.Name; DependentCntrl = textBox; } } } string[] bindFields = Grid.ResolveBinding(BindingText); if (bindFields != null) { // popupate data -- reflection Type objectType = dataContext.GetType(); object value = dataContext; for (int i = 0; i < bindFields.Length; i++) { PropertyInfo pInfo = objectType.GetProperty(bindFields[i]); value = pInfo.GetValue(value, null); if (value != null) { objectType = value.GetType(); } text = value == null ? string.Empty : value as string; } } else { text = BindingText; } if (uiControl != null) { ((System.Web.UI.WebControls.TextBox)uiControl).Text = text; } return(text); } else { return(string.Empty); } }
private void createControls() { if (AddressDefinition != null) { HtmlGenericControl row = null; ControlCollection coll = AddressDefinition.AddressGrid.Controls; coll.SortControls(); // Reading the resx to create the control var reader = new AddressResxReader(); AddressResx addressResx = reader.GetAddressResx(Thread.CurrentThread.CurrentCulture.Name); var rowNumber = -1; foreach (int r in coll.Select(s => s.Row).Distinct()) { if (rowNumber != r) { var colNum = coll.Where(c => c.Row == r).Select(a => a.Column).Distinct().ToList(); _containerTable.Controls.Add(row = new HtmlGenericControl("div")); rowNumber = r + 1; var colNumRow = coll.Where(c => c.Row == rowNumber).Select(a => a.Column).Distinct().ToList(); if (colNumRow.Count > colNum.Count) { colNum = colNumRow; } var childNumber = 1; foreach (int column in colNum) { if (colNum.Count() > 1) { var rowChild = new HtmlGenericControl("div"); row.Attributes.Add("class", "row-group " + "cols-" + colNum.Count().ToString()); rowChild.Attributes.Add("class", "inline"); if (childNumber == colNum.Count()) { rowChild.Attributes.Add("class", "inline last-child"); } var lstControls = coll.Where(p => (p.Row == r || p.Row == rowNumber) && p.Column == column).Select(a => a).ToList(); rowChild.Attributes.Add("name", lstControls[0].Name.Contains("Spacer") ? "" : lstControls[0].Name.ToString()); foreach (Control c in lstControls) { c.CreateUIControl(rowChild, DataContext, addressResx); } row.Controls.Add(rowChild); childNumber++; } else { var lstControls = coll.Where(p => (p.Row == r || p.Row == rowNumber) && p.Column == column).Select(a => a).ToList(); row.Attributes.Add("name", lstControls[0].Name.Contains("Spacer") ? "" : lstControls[0].Name.ToString()); foreach (Control c in lstControls) { c.CreateUIControl(row, DataContext, addressResx); } } } } else { rowNumber = -1; } } if (coll.Exists(p => p.Editable == true)) { _editMode = Mode.Edit; } AddressDefinition.AddressGrid.ResovleBinding(DataContext); controlCreated = true; } }
public override string ResolveBinding(ControlCollection coll, object DataContext) { try { ListItem selectedItem; var ddl = uiControl as DropDownList; ddl.DataBind(); setSelected(DataContext, ddl); //Customozation to set the ddlCity drop down list GetCityValue(DataContext); // it has dependent if (!string.IsNullOrEmpty(Dependent)) { var ctrls = coll.Where(p => p.Name == Dependent).Select(s => s); if (ctrls.Count() > 0) { // must be combobox var cb = ctrls.First() as ComboBox; if (cb != null) { DependentOf = cb.Name; DependentCntrl = cb; if ((selectedItem = ddl.SelectedItem) == null) { string strValue = getStringValue(DataContext); selectedItem = string.IsNullOrEmpty(strValue) ? ddl.Items[0] : ddl.Items.FindByText(strValue); } var depddl = DependentCntrl.uiControl as DropDownList; (depddl.DataSource as XmlDataSource).XPath = string.Format(cb.XPath, selectedItem.Value); depddl.DataBind(); if (!string.IsNullOrEmpty(GetCity.CityValue)) { //depddl.SelectedItem.Text = GetCity.CityValue; ListItem item = depddl.Items.FindByText(GetCity.CityValue); if (item != null) { item.Selected = true; } else { item = depddl.Items.FindByValue(GetCity.CityValue); if (item != null) { item.Selected = true; } } } else { setSelected(DataContext, ddl); } } } } } catch (Exception ex) { LoggerHelper.Error(ex.ToString()); } return(null); }