private void BuildDict(int iddict)
{
gpDictData.Plugins.Clear();
GridFilters gfDictData = new GridFilters();
gpDictData.Plugins.Add(gfDictData);
try
{
string dname = string.Empty;
string tname = string.Empty;
IRefBook refbook = DMFEnvironment.CurrEnvironment.Provider.GetObject(typeof(IRefBook)) as IRefBook;
if (refbook != null)
{
DataTable dt = refbook.GetSpr(iddict, UserData.Data.IdOrg, true, out tname);
Session[ucDictionaryRecEdit.CTBLSTRUCTURE] = dt.Columns; // Сохраняем в сессии структуру текущей таблицы
Session[ucDictionaryRecEdit.CTBLNAME] = tname;
//Session[ucDictionaryRecEdit.CTBLID] = iddict;
DataColumnCollection tableColumns = dt.Columns;
Dictionary<string, Dictionary<string, string>> cols = refbook.GetAttributeSprBySprID(iddict);
// Изменяем DataStore
if (X.IsAjaxRequest) this.dsDictData.RemoveFields();
foreach (KeyValuePair<string, Dictionary<string, string>> kvp in cols)
{
this.AddField(new RecordField(kvp.Key));
}
this.dsDictData.ClearMeta();
// Биндим справочники
this.dsDictData.DataSource = dt;
this.dsDictData.DataBind();
// Строим ColumnModel
foreach (KeyValuePair<string, Dictionary<string, string>> kvp in cols)
{
string dataField = kvp.Key;
Dictionary<string, string> col = kvp.Value;
Column _dataColumn = new Column();
_dataColumn.DataIndex = kvp.Key;
_dataColumn.ColumnID = kvp.Key;
_dataColumn.Hidden = (string.IsNullOrEmpty(col["visible_in_grid"])) ? true : ((col["visible_in_grid"] == "0") ? true : false);
_dataColumn.Header = col["caption"];
this.gpDictData.ColumnModel.Columns.Add(_dataColumn);
//if (tableColumns.Contains(_dataColumn.DataIndex))
//{
// DataColumn dataColumn = tableColumns[_dataColumn.DataIndex];
// if (dataColumn.DataType == typeof(DateTime))
// {
// DateFilter _filter = new DateFilter();
// _filter.DataIndex = _dataColumn.DataIndex;
// gfDictData.Filters.Add(_filter);
// }
// else
// {
StringFilter _filter = new StringFilter();
_filter.DataIndex = _dataColumn.DataIndex;
_filter.SetActive(true);
_filter.AutoDataBind = true;
gfDictData.Filters.Add(_filter);
// }
//}
}
if (X.IsAjaxRequest)
{
this.gpDictData.Reconfigure();
//this.gpDictData.RefreshView();
}
}
else
{
log.Warn("## BuildDict ##, Не удается получить IRefBook");
}
}
catch (Exception ex)
{
log.Error("## BuildDict ##", ex);
}
}