public void SetupColumns(IEnumerable <SearchItem> items, SearchColumnFlags options) { var fields = new HashSet <SearchItem.Field>(); foreach (var e in items ?? GetElements()) { fields.UnionWith(e.GetFields().Where(f => f.value != null)); } if (m_TableConfig != null && fields.Count > 0) { m_TableConfig.columns = fields.Select(f => ItemSelectors.CreateColumn(f.label, f.name, options: options)).ToArray(); SetSearchTable(m_TableConfig); } else { SetSearchTable(SearchTable.CreateDefault()); } }
SearchTable LoadDefaultTableConfig(bool reset, string id = null, SearchTable defaultConfig = null) { if (!reset) { var sessionSearchTableData = SessionState.GetString(GetDefaultGroupId(id), null); if (!string.IsNullOrEmpty(sessionSearchTableData)) { return(SearchTable.Import(sessionSearchTableData)); } } if (searchView is QuickSearch qs) { var providers = qs.context.GetProviders(); var provider = providers.Count == 1 ? providers.FirstOrDefault() : SearchService.GetProvider(qs.currentGroup); if (provider?.tableConfig != null) { return(provider.tableConfig(context)); } } return(defaultConfig ?? SearchTable.CreateDefault()); }
private void Update() { if (items == null) { return; } // Set a default configuration if none if (m_TableConfig == null) { var sessionSearchTableData = SessionState.GetString(TableConfigSessionKey, null); if (string.IsNullOrEmpty(sessionSearchTableData)) { SetSearchTable(SearchTable.CreateDefault()); } else { SetSearchTable(SearchTable.Import(sessionSearchTableData)); } } UpdatePropertyTable(); }