internal void LoadProperties(string value) { if (!string.IsNullOrEmpty((string)value)) { var options = ((string)value).Split(','); var op = string.Empty; foreach (var option in options) { if (op.Length > 0) { op += ','; } op += option; if (op.Split('{').Length != op.Split('}').Length) { continue; } if (op.Split('[').Length != op.Split(']').Length) { continue; } var index = op.IndexOf(':'); if (index > 0) { var pname = op.Substring(0, index).Trim(); var pvalue = op.Substring(index + 1).Trim('\''); if (pname == "panelWidth") { try { this.DialogWidth = int.Parse(pvalue); } catch { } } else if (pname == "remoteName") { this.RemoteName = pvalue; } else if (pname == "valueField") { this.ValueMember = pvalue; } else if (pname == "textField") { this.DisplayMember = pvalue; } else if (pname == "valueFieldCaption") { this.ValueMemberCaption = pvalue; } else if (pname == "textFieldCaption") { this.DisplayMemberCaption = pvalue; } else if (pname == "checkData") { bool b = false; if (Boolean.TryParse(pvalue, out b)) { this.CheckData = b; } } else if (pname == "onSelect") { this.OnSelect = pvalue; } else if (pname == "onBeforeLoad") { this.OnBeforeLoad = pvalue; } else if (pname == "selectOnly") { bool b = false; if (Boolean.TryParse(pvalue, out b)) { this.SelectOnly = b; } } else if (pname == "multiple") { bool b = false; if (Boolean.TryParse(pvalue, out b)) { this.MultiSelect = b; } } else if (pname == "cacheRelationText") { bool vcacheRelationText = true; Boolean.TryParse(pvalue, out vcacheRelationText); this.CacheRelationText = vcacheRelationText; } else if (pname == "columns") { var columns = pvalue.Trim('[', ']'); var matches = Regex.Matches(columns, @"(?<=\{).*?(?=\})"); if (matches.Count > 0) { foreach (Match match in matches) { var column = new JQGridColumn(); var columnOptions = match.Value.Split(','); foreach (var cop in columnOptions) { var cparts = cop.Split(':'); if (cparts.Length == 2) { var cpname = cparts[0].Trim(); var cpvalue = cparts[1].Trim('\''); if (cpname == "field") { column.FieldName = cpvalue; } else if (cpname == "title") { column.Caption = cpvalue; } else if (cpname == "width") { try { column.Width = int.Parse(cpvalue); } catch { } } else if (cpname == "align") { column.Alignment = cpvalue; } else if (cpname == "sortable") { bool b = false; if (Boolean.TryParse(cpvalue, out b)) { column.Sortable = b; } } else if (cpname == "format") { column.Format = cpvalue; } } } this.Columns.Add(column); } } } } op = string.Empty; } } }
internal void LoadProperties(string value) { if (!string.IsNullOrEmpty((string)value)) { var options = ((string)value).Split(','); var op = string.Empty; foreach (var option in options) { if (op.Length > 0) { op += ','; } op += option; if (op.Split('{').Length != op.Split('}').Length) { continue; } if (op.Split('[').Length != op.Split(']').Length) { continue; } var index = op.IndexOf(':'); if (index > 0) { var pname = op.Substring(0, index).Trim(); var pvalue = op.Substring(index + 1).Trim('\''); if (pname == "title") { this.DialogTitle = pvalue; } else if (pname == "panelWidth") { try { this.DialogWidth = int.Parse(pvalue); } catch { } } else if (pname == "remoteName") { this.RemoteName = pvalue; } else if (pname == "valueField") { this.ValueMember = pvalue; } else if (pname == "textField") { this.DisplayMember = pvalue; } else if (pname == "valueFieldCaption") { this.ValueMemberCaption = pvalue; } else if (pname == "textFieldCaption") { this.DisplayMemberCaption = pvalue; } else if (pname == "onSelect") { this.OnSelect = pvalue; } else if (pname == "onFilter") { this.OnFilter = pvalue; } else if (pname == "selectOnly") { bool vselectonly = false; Boolean.TryParse(pvalue, out vselectonly); this.SelectOnly = vselectonly; } else if (pname == "cacheRelationText") { bool vcacheRelationText = true; Boolean.TryParse(pvalue, out vcacheRelationText); this.CacheRelationText = vcacheRelationText; } else if (pname == "checkData") { bool vcheckdata = true; Boolean.TryParse(pvalue, out vcheckdata); this.CheckData = vcheckdata; } else if (pname == "showValueAndText") { bool vshowValueAndText = true; Boolean.TryParse(pvalue, out vshowValueAndText); this.ShowValueAndText = vshowValueAndText; } else if (pname == "dialogCenter") { bool vsdialogCenter = true; Boolean.TryParse(pvalue, out vsdialogCenter); this.DialogCenter = vsdialogCenter; } if (pname == "capsLock") { this.CapsLock = (CapsLockEnum)Enum.Parse(typeof(CapsLockEnum), pvalue, true); } else if (pname == "columns") { var columns = pvalue.Trim('[', ']'); var matches = Regex.Matches(columns, @"(?<=\{).*?(?=\})"); if (matches.Count > 0) { foreach (Match match in matches) { var column = new JQGridColumn(); var columnOptions = match.Value.Split(','); foreach (var cop in columnOptions) { var cparts = cop.Split(':'); if (cparts.Length == 2) { var cpname = cparts[0].Trim(); var cpvalue = cparts[1].Trim('\''); if (cpname == "field") { column.FieldName = cpvalue; } else if (cpname == "title") { column.Caption = cpvalue; } else if (cpname == "width") { try { column.Width = int.Parse(cpvalue); } catch { } } else if (cpname == "align") { column.Alignment = cpvalue; } else if (cpname == "table") { column.TableName = cpvalue; } else if (cpname == "isNvarChar") { column.IsNvarChar = cpvalue == "true"; } else if (cpname == "format") { column.Format = cpvalue; } else if (cpname == "queryCondition") { column.QueryCondition = cpvalue; } } } this.Columns.Add(column); } } } else if (pname == "columnMatches") { var columnMatches = pvalue.Trim('[', ']'); var matches = Regex.Matches(columnMatches, @"(?<=\{).*?(?=\})"); if (matches.Count > 0) { foreach (Match match in matches) { var columnMatch = new JQColumnMatch(); var columnOptions = match.Value.Split(','); foreach (var cop in columnOptions) { var cparts = cop.Split(':'); if (cparts.Length == 2) { var cpname = cparts[0].Trim(); var cpvalue = cparts[1].Trim('\''); if (cpname == "field") { columnMatch.TargetFieldName = cpvalue; } else if (cpname == "value") { if (cpvalue.StartsWith("remote[")) { columnMatch.RemoteMethod = true; columnMatch.SourceMethod = cpvalue.Replace("remote[", "").Replace("]", ""); } else if (cpvalue.StartsWith("client[")) { columnMatch.RemoteMethod = false; columnMatch.SourceMethod = cpvalue.Replace("client[", "").Replace("]", ""); } else { columnMatch.SourceFieldName = cpvalue; } } } } this.ColumnMatches.Add(columnMatch); } } } else if (pname == "whereItems") { var whereItems = pvalue.Trim('[', ']'); var matches = Regex.Matches(whereItems, @"(?<=\{).*?(?=\})"); if (matches.Count > 0) { foreach (Match match in matches) { var whereItem = new JQWhereItem(); var columnOptions = match.Value.Split(','); var columnOp = ""; foreach (var cop in columnOptions) { if (columnOp.Length > 0) { columnOp += ','; } columnOp += cop; if (columnOp.Split('\'').Length % 2 == 0) { continue; } var cparts = columnOp.Split(':'); if (cparts.Length == 2) { var cpname = cparts[0].Trim(); var cpvalue = cparts[1].Trim('\''); if (cpname == "field") { whereItem.FieldName = cpvalue; } else if (cpname == "value") { if (cpvalue.StartsWith("remote[")) { whereItem.RemoteMethod = true; cpvalue = cpvalue.Replace("remote[", "").Replace("]", ""); if (cpvalue.StartsWith("_")) { whereItem.WhereValue = cpvalue; } else { whereItem.WhereMethod = cpvalue; } } else if (cpvalue.StartsWith("client[")) { whereItem.RemoteMethod = false; whereItem.WhereMethod = cpvalue.Replace("client[", "").Replace("]", ""); } else if (cpvalue.StartsWith("row[")) { whereItem.RemoteMethod = false; whereItem.WhereField = cpvalue.Replace("row[", "").Replace("]", ""); } else { whereItem.WhereValue = cpvalue; } } } columnOp = string.Empty; } this.WhereItems.Add(whereItem); } } } } op = string.Empty; } } }
public void RefreshSchema() { if (this.Component is JQDataGrid) { if (string.IsNullOrEmpty(RemoteName) || string.IsNullOrEmpty(DataMember)) { return; } var dataGrid = this.Component as JQDataGrid; if (dataGrid.Columns.Count > 0) { if (System.Windows.Forms.MessageBox.Show("Would you like to regenerate the gridview column fields and toolitems? Warning: this will delete all existing column fields" , "Confirm", System.Windows.Forms.MessageBoxButtons.YesNo , System.Windows.Forms.MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.No) { return; } } var clientInfo = EFClientTools.DesignClientUtility.ClientInfo; clientInfo.UseDataSet = true; try { var assemblyName = RemoteName.Split('.')[0]; var commandName = RemoteName.Split('.')[1]; var columnsLength = EFClientTools.DesignClientUtility.Client.GetEntityFieldsLength(clientInfo, assemblyName, DataMember, null); var columnsType = EFClientTools.DesignClientUtility.Client.GetEntityFieldTypes(clientInfo, assemblyName, DataMember, null); var columns = EFClientTools.DesignClientUtility.Client.GetEntityFields(clientInfo, assemblyName, DataMember, null); var componentChangeService = (IComponentChangeService)this.GetService(typeof(IComponentChangeService)); componentChangeService.OnComponentChanging(dataGrid, null); dataGrid.Columns.Clear(); var columnDefinations = EFClientTools.DesignClientUtility.Client.GetColumnDefination(clientInfo, assemblyName, DataMember, null) .OfType<EFClientTools.EFServerReference.COLDEF>(); foreach (var column in columns) { JQGridColumn aJQGridColumn = new JQGridColumn(); aJQGridColumn.FieldName = column; aJQGridColumn.Caption = column; aJQGridColumn.Width = 90; var coldef = columnDefinations.Where(c => c.FIELD_NAME == column).FirstOrDefault(); if (coldef != null) { if (!String.IsNullOrEmpty(coldef.CAPTION)) aJQGridColumn.Caption = coldef.CAPTION; if (coldef.FIELD_LENGTH.HasValue) { aJQGridColumn.MaxLength = (int)coldef.FIELD_LENGTH; } switch (columnsType[column]) { case "String": if (aJQGridColumn.MaxLength > 0) { aJQGridColumn.Width = aJQGridColumn.MaxLength * 2; } else if (columnsLength[column] > 0) { aJQGridColumn.Width = columnsLength[column] * 2; } break; } //aJQGridColumn.Width = 90; switch (coldef.NEEDBOX) { case "ComboBox": aJQGridColumn.Editor = "infocombobox"; break; case "ComboGrid": aJQGridColumn.Editor = "infocombogrid"; break; case "RefValBox": aJQGridColumn.Editor = "inforefval"; break; case "CheckBox": aJQGridColumn.Editor = "checkbox"; break; case "DateTimeBox": aJQGridColumn.Editor = "datebox"; break; case "NumberBox": aJQGridColumn.Editor = "numberbox"; break; default: aJQGridColumn.Editor = "text"; break; } } dataGrid.Columns.Add(aJQGridColumn); } dataGrid.TooItems.Clear(); dataGrid.TooItems.Add(JQToolItem.InsertItem); dataGrid.TooItems.Add(JQToolItem.UpdateItem); dataGrid.TooItems.Add(JQToolItem.DeleteItem); if (commandName == DataMember) { dataGrid.TooItems.Add(JQToolItem.ApplyItem); dataGrid.TooItems.Add(JQToolItem.CancelItem); dataGrid.TooItems.Add(JQToolItem.QueryItem); dataGrid.TooItems.Add(JQToolItem.ExportItem); } else { dataGrid.AutoApply = false; dataGrid.Pagination = false; } componentChangeService.OnComponentChanged(dataGrid, null, null, null); System.Windows.Forms.MessageBox.Show("Refresh schema succeed.", "Info", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } }