protected override void OnLoad(EventArgs e) { base.OnLoad(e); TableDataSourceView view = (TableDataSourceView)GetData(); view.FillType = TableDataSourceFillType.Never; String tableCaption = (String)(DataSetResourceManager.GetTableExtProperty(view.Table, TableExtProperties.CAPTION) ?? view.Table.TableName); String SSelectFromDBDirectory = LookupControlsResources.SSelectFromDBDirectory; popupControl.HeaderText = String.Format("{0} \"{1}\"", SSelectFromDBDirectory, tableCaption); if (AllowNullButton) { nullButton.Style["display"] = ""; } else { nullButton.Style["display"] = "none"; } // Because we don't use ViewState in GridView of LookupTable we have to // regenerate DataKeyNames from conrols where we stored this values earlier dataTextField = DataTextField; dataValueField = DataValueField; dataCodeField = DataCodeField; dataDisableRowField = DataDisableRowField; UpdateDataKeyNames(); }
public static DataTable GetDataTable(object dataSource) { DataTable dataTable = dataSource as DataTable; if (dataTable != null) { return(dataTable); } DataView dataView = dataSource as DataView; if (dataView != null) { return(dataView.Table); } TableDataSourceView tableDataSourceView = dataSource as TableDataSourceView; if (tableDataSourceView != null) { return(tableDataSourceView.Table); } TableDataSource tableDataSource = dataSource as TableDataSource; if (tableDataSource != null) { return(tableDataSource.Table); } return(null); }
private object BeforeOnDataBinding(out bool setValue, out TableDataSourceView data) { selectedValueBeforDataBinding = SelectedValue; object value = null; setValue = false; data = null; if (Items.Count > -1 && selectedValueHistory != null) { data = GetData() as TableDataSourceView; if (data != null && data.HistoricalCountKeys > _historicalIndexValue) { value = data.HistoricalValues[_historicalIndexValue]; data.HistoricalValues[_historicalIndexValue] = selectedValueHistory; setValue = true; } } if (IncludeNullItem && (Items.Count == 0 || Items[0].Value != nullItem.Value)) { Items.Insert(0, nullItem); AppendDataBoundItems = true; } return(value); }
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; }
private void FillProps() { TableDataSourceView _data = (TableDataSourceView)GetData(); if (!DesignMode && _data != null && !String.IsNullOrEmpty(DataTextField) && !String.IsNullOrEmpty(DataValueField)) { Hashtable props = new Hashtable(); props["ShowHistoricalData"] = _data.ShowHistoricalData; props["LoadAllHistoricalData"] = _data.LoadAllHistoricalData; props["EndDateField"] = _data.EndDateField; props["StartDateField"] = _data.StartDateField; props["HistolicalPoint"] = _data.HistolicalPoint; props["QueryConditionsList"] = _data.CustomConditions; props["FilterParameters"] = _data.GetFilterParameters(); props["SelectMethod"] = _data.SelectMethod; props["TypeName"] = _data.TypeName; props["SelectParameters"] = _data.GetSelectParameters(); props["DataTextField"] = DataTextField; props["DataCodeField"] = DataCodeField; props["DataValueField"] = DataValueField; props["DataDisableRowField"] = DataDisableRowField; props["ConditionValue"] = ConditionValue; props["FilterExpression"] = _data.FilterExpression; props["SetFilterByCustomConditions"] = _data.SetFilterByCustomConditions; Page.Session[WebMethodSessionKey] = props; } }
public TableDataSource() { _view = new TableDataSourceView(this, DefaultViewName, base.Context); _view.FillType = TableDataSourceFillType.ParametersNotChanged; _viewFieldInfo.SetValue(this, _view); if (IsTrackingViewState) { ((IStateManager)_view).TrackViewState(); } }
protected override void OnDataSourceViewChanged(object sender, EventArgs e) { if (_view != null) { _viewFinded = false; _view.CurrentChanged -= TableDataSourceView_OnCurrentChanged; _view.Table.RowChanged -= Table_OnRowChanged; _view = null; } base.OnDataSourceViewChanged(sender, e); }
protected override void OnModeChanging(DetailsViewModeEventArgs e) { _cancelingEdit = e.CancelingEdit; base.OnModeChanging(e); if (AllowChangeViewMode) { if (TableDataSourceView != null && !e.Cancel && e.CancelingEdit && Parent is View) { if (TableDataSourceView.HasNewRow) { e.Cancel = true; } TableDataSourceView.CancelEdit(); } } }
protected override void OnModeChanged(EventArgs e) { if (AllowChangeViewMode) { if (TableDataSourceView != null && CurrentMode == DetailsViewMode.ReadOnly && (TableDataSourceView.HasNewRow || TableDataSourceView.IsEditRow)) { if (_cancelingEdit && !(Parent is View)) { TableDataSourceView.CancelEdit(); } TableDataSourceView.EndEdit(); } if (TableDataSourceView != null && CurrentMode == DetailsViewMode.Edit && !TableDataSourceView.IsEditRow) { TableDataSourceView.BeginEdit(); } } base.OnModeChanged(e); }
private void AfterDataBinding(bool setValue, TableDataSourceView data, object value) { if (setValue) { data.HistoricalValues[_historicalIndexValue] = value; } if (IncludeNullItem && (Items.Count == 0 || Items[0] != nullItem)) { Items.Insert(0, nullItem); SelectedValue = selectedValue; } /* * if (selectedValueBeforDataBinding != null * && selectedValueBeforDataBinding != SelectedValue * && Items.Cast<ListItem>().Any(r => r.Value == Convert.ToString(selectedValueBeforDataBinding))) * { * SelectedValue = selectedValueBeforDataBinding; * }*/ }
protected override void CreateChildControls() { base.CreateChildControls(); bool initStorage = false; // HiddenField hiddenField = new HiddenField(); Controls.Add(hiddenField); btnFullBriefView = new Image(); Controls.Add(btnFullBriefView); btnFullBriefView.Style["position"] = "absolute"; btnFullBriefView.Style["right"] = "25px"; btnFullBriefView.Style["top"] = "0px"; btnFullBriefView.ImageUrl = defaultFullView ? BriefViewImageUrl : FullViewImageUrl; btnFullBriefView.Style["display"] = showFullBriefViewButton ? "" : "none"; btnFullBriefView.Style["cursor"] = "hand"; UpdatePanel buttonUpdatePanel = new UpdatePanel(); buttonUpdatePanel.ID = "buttonUpdatePanelID"; buttonUpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional; Controls.AddAt(1, buttonUpdatePanel); btnSaveFiltersState = new ImageButton(); btnSaveFiltersState.ID = "btnSaveFiltersStateID"; buttonUpdatePanel.ContentTemplateContainer.Controls.Add(btnSaveFiltersState); btnSaveFiltersState.Style["position"] = "absolute"; btnSaveFiltersState.Style["right"] = "50px"; btnSaveFiltersState.Style["top"] = "0px"; btnSaveFiltersState.Style["display"] = ""; btnSaveFiltersState.ImageUrl = SaveFilterStateImageUrl; btnSaveFiltersState.Style["cursor"] = "hand"; btnSaveFiltersState.Click += BtnSaveFiltersState_OnClick; btnSaveFiltersState.ToolTip = LookupControlsResources.SSaveFiltersState; // Get DataTable view = (TableDataSourceView)GetData(); dataTable = view.Table; // Ensure ColumnFilterStorages if (ColumnFilterStorages == null) { initStorage = true; ColumnFilterStorageList columnFilterStorages = new ColumnFilterStorageList(); foreach (DataColumn dataColumn in dataTable.Columns) { Boolean showInFilter = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.SHOW_IN_FILTER) ?? false); var visibleCulture = (string)DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.SHOW_IN_FILTER_CULTURE); if (!string.IsNullOrEmpty(visibleCulture)) { showInFilter = showInFilter && visibleCulture.Equals(CultureInfo.CurrentUICulture.Name, StringComparison.CurrentCultureIgnoreCase); } if (showInFilter) { ColumnFilterStorage columnFilterStorage = new ColumnFilterStorage(); columnFilterStorage.Name = dataColumn.ColumnName; columnFilterStorage.Caption = (String)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.CAPTION) ?? dataColumn.Caption); columnFilterStorage.DataType = dataColumn.DataType; columnFilterStorage.DbType = (NullableHelper.CreateNullable <DbType>(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.DB_TYPE))); columnFilterStorage.FilterType = ColumnFilterType.None; columnFilterStorage.IsRefBound = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_COLUMN_IS_REF) ?? false); columnFilterStorage.HideInBriefView = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_HIDE_IN_BRIEF_VIEW) ?? false); if (columnFilterStorage.IsRefBound) { DataTable filterRefTable = (DataTable)DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_TABLE); columnFilterStorage.TableName = filterRefTable.TableName; columnFilterStorage.RefTableRolledIn = (Boolean)(DataSetResourceManager.GetTableExtProperty(filterRefTable, TableExtProperties.ROLLED_IN) ?? false); columnFilterStorage.DisplayColumn = DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_DISPLAY_COLUMN) as String; columnFilterStorage.ValueColumn = DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_REF_VALUE_COLUMN) as String; } columnFilterStorage.AvailableFilters = columnFilterStorage.GetDefaultFilterTypes(); columnFilterStorage.DateTimeFormat = (String)(DataSetResourceManager.GetColumnExtProperty(dataColumn, ColumnExtProperties.FILTER_DATE_TIME_FORMAT)); columnFilterStorages.Add(columnFilterStorage); } } SetColumnFilterStorages(columnFilterStorages); } if (view.SessionWorker == null) { throw new Exception("SessionWorker cannot be null"); } // Get data source from session in case when column refers to another table DataSet dataSet = view.SessionWorker.Object as DataSet; if (dataSet == null) { throw new Exception("SessionWorker.Object is not DataSet or null"); } foreach (ColumnFilterStorage storage in ColumnFilterStorages) { if (storage.IsRefBound) { storage.RefDataSource = dataSet.Tables[storage.TableName]; } } if (ViewState["FiltersStateLoaded"] == null) { ViewState["FiltersStateLoaded"] = true; LoadFiltersState(); } // Filter panel filterPanel = new Panel(); filterPanel.ID = "filterPanelID"; Controls.Add(filterPanel); filterPanel.Height = filterHeight; filterPanel.ScrollBars = ScrollBars.Auto; // ColumnFilters columnFilters = new List <ColumnFilter>(); var args = new ColumnFilterListCreatingEventArgs(); OnColumnFilterListCreating(args); if (initStorage) { ColumnFilterStorages.AddRange(args.ListStorages); } foreach (ColumnFilterStorage columnFilterStorage in ColumnFilterStorages) { if (args.ListStorages.Where(s => s.Name.Equals(columnFilterStorage.Name)).Count() > 0) { AddColumnFilter(columnFilterStorage); continue; } string[] rights = (string[])(DataSetResourceManager.GetColumnExtProperty( dataTable.Columns[columnFilterStorage.Name], ColumnExtProperties.FILTER_RIGHTS) ?? new string[] { }); Boolean userHasRights = true; foreach (string right in rights) { userHasRights = UserRoles.IsInRole(Convert.ToString(right)); if (!userHasRights) { break; } } if (userHasRights) { AddColumnFilter(columnFilterStorage); } } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (DesignMode) { return; } TableDataSourceView view = (TableDataSourceView)GetData(); DataTable dataTable = view.Table; Boolean allowPaging = (Boolean)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.ALLOW_PAGING) ?? true); if (allowPaging) { Int32 pageSize = (Int32)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.PAGE_SIZE) ?? 10); gridView.AllowPaging = true; gridView.PageSize = pageSize; view.EnablePaging = true; } var isTree = AllowTreeAndPaging || (bool)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.IS_TREE_REF) ?? false); if (!allowPaging || isTree) { view.EnablePaging = false; if (!isTree) { gridView.AllowPaging = false; } if (GridTreeMode) { String Relation = (String)(DataSetResourceManager.GetTableExtProperty(dataTable, TableExtProperties.TREE_REF_RELATION) ?? ""); gridView.ShowAsTree = !String.IsNullOrEmpty(Relation); gridView.AllowNewButtonForTree = false; gridView.PostBackOnExpnad = postBackOnTreeExpand; if (gridView.ShowAsTree) { gridView.RelationName = Relation; } } } gridView.AutoGenerateColumns = false; if (ViewState["ColumnsCreated"] == null) { ViewState["ColumnsCreated"] = true; if (AllowErrorIconColumn) { var field = new TemplateFieldExt { ColumnName = "ErrorIconColumn", }; gridView.Columns.Add(field); } foreach (DataColumn dc in dataTable.Columns) { var showColumn = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.VISIBLE) ?? false); var visibleCulture = (string)DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.VISIBLE_CULTURE); if (!string.IsNullOrEmpty(visibleCulture)) { showColumn = showColumn && visibleCulture.Equals(CultureInfo.CurrentUICulture.Name, StringComparison.CurrentCultureIgnoreCase); } Object[] rights = (Object[])(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.RIGHTS) ?? new Object[] {}); Boolean userHasRights = true; foreach (Object right in rights) { userHasRights = UserRoles.IsInRole(Convert.ToString(right)); if (!userHasRights) { break; } } if (showColumn && userHasRights) { String columnCaption = (String)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.CAPTION) ?? dc.Caption); if (dc.DataType == typeof(DateTime)) { String dataFormatString = (String)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.FILTER_DATE_TIME_FORMAT) ?? null); BoundField boundField = new BoundField(); boundField.DataField = dc.ColumnName; boundField.HeaderText = columnCaption; boundField.DataFormatString = dataFormatString; boundField.HtmlEncode = false; boundField.SortExpression = dc.ColumnName; gridView.Columns.Add(boundField); } else if (dc.DataType == typeof(Boolean)) { CheckBoxField checkBoxField = new CheckBoxField(); checkBoxField.DataField = dc.ColumnName; checkBoxField.HeaderText = columnCaption; checkBoxField.SortExpression = dc.ColumnName; gridView.Columns.Add(checkBoxField); } else { BoundField boundField = new BoundField(); boundField.DataField = dc.ColumnName; boundField.HeaderText = columnCaption; boundField.SortExpression = dc.ColumnName; Boolean htmlEncode = (Boolean)(DataSetResourceManager.GetColumnExtProperty(dc, ColumnExtProperties.HTML_ENCODED) ?? false); boundField.HtmlEncode = htmlEncode; gridView.Columns.Add(boundField); } } } if (AllowErrorColumn) { var field = new TemplateFieldExt { ColumnName = "ErrorColumn", HeaderText = ErrorHeaderText, }; gridView.Columns.Add(field); } } if (AllowErrorColumn || AllowErrorIconColumn) { gridView.RowCreated += GridView_OnRowCreated; } }
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()); }