public void EnsureTextByValue(Object value) { if (!String.IsNullOrEmpty(Convert.ToString(value))) { TableDataSourceView _data = (TableDataSourceView)GetData(); TableDataSourceView tableDataSourceView = new TableDataSourceView( null, _data.ShowHistoricalData, _data.LoadAllHistoricalData, _data.EndDateField, _data.StartDateField, _data.HistolicalPoint, _data.CustomConditions, _data.SelectMethod, _data.TypeName, _data.GetSelectParameters(), _data.GetFilterParameters(), _data.FilterExpression, _data.SetFilterByCustomConditions); if (_data.HistoricalCountKeys == 1) { tableDataSourceView.HistoricalKey = _data.HistoricalKey; tableDataSourceView.HistoricalSelectMethod = _data.HistoricalSelectMethod; tableDataSourceView.HistoricalCountKeys = 1; tableDataSourceView.HistoricalValues[0] = value; } QueryCondition queryCondition = new QueryCondition(DataValueField, ColumnFilterType.Equal, value, null); tableDataSourceView.CustomConditions.Add(queryCondition); DataView dataView; try { DataSourceSelectArguments arguments = new DataSourceSelectArguments(); dataView = (DataView)tableDataSourceView.Select(true, arguments, new DataSourceSelectExtArguments(1)); } finally { tableDataSourceView.CustomConditions.Remove(queryCondition); } //выполнение запроса должно помещать 1 запись в таблицу if (dataView.Table.Rows.Count == 1) { Text = dataView.Table.Rows[0][DataTextField].ToString(); } else if (dataView.Count == 1) { Text = dataView[0][DataTextField].ToString(); } else { Text = ""; } } else { Text = ""; } textBox.Text = Text; }
/// <summary> /// Заполнение данных не смотря на запрет от FillType /// </summary> public void Select(bool anyWay) { _view.Select(anyWay, DataSourceSelectArguments.Empty); }
public string[] GetCompletionList(string prefixText, int count, string contextKey) { Hashtable props = (Hashtable)Session[contextKey]; TableDataSourceView tableDataSourceView = new TableDataSourceView( null, (Boolean)props["ShowHistoricalData"], (Boolean)props["LoadAllHistoricalData"], (String)props["EndDateField"], (String)props["StartDateField"], (DateTime?)props["HistolicalPoint"], (QueryConditionList)props["QueryConditionsList"], (String)props["SelectMethod"], (String)props["TypeName"], (List <Triplet>)props["SelectParameters"], (Dictionary <String, String>)props["FilterParameters"], (String)props["FilterExpression"], (Boolean)props["SetFilterByCustomConditions"]); QueryCondition queryCondition = new QueryCondition((String)props["DataTextField"], ColumnFilterType.StartWith, prefixText, null); tableDataSourceView.CustomConditions.Add(queryCondition); QueryCondition disableRowFieldQueryCondition = null; String disableRowField = (String)props["DataDisableRowField"]; if (!String.IsNullOrEmpty(disableRowField)) { Int32 disableRowCondition = (Int32)props["ConditionValue"]; disableRowFieldQueryCondition = new QueryCondition(disableRowField, ColumnFilterType.Equal, disableRowCondition, null); tableDataSourceView.CustomConditions.Add(disableRowFieldQueryCondition); } DataView dataView; try { string filterString = tableDataSourceView.GetFilterString(); dataView = (DataView)tableDataSourceView.Select(true, new DataSourceSelectArguments(), new DataSourceSelectExtArguments(count)); dataView.RowFilter = filterString; } finally { tableDataSourceView.CustomConditions.Remove(queryCondition); if (disableRowFieldQueryCondition != null) { tableDataSourceView.CustomConditions.Remove(disableRowFieldQueryCondition); } } List <string> items = new List <string>(); JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); foreach (DataRowView dataRowView in dataView) { String text = dataRowView[(String)props["DataTextField"]].ToString(); String code = String.IsNullOrEmpty((String)props["DataCodeField"]) ? "-1" : dataRowView[(String)props["DataCodeField"]].ToString(); String id = dataRowView[(String)props["DataValueField"]].ToString(); String value = javaScriptSerializer.Serialize(new Pair(id, code)); String item = javaScriptSerializer.Serialize(new Pair(text, value)); items.Add(item); } return(items.ToArray()); }