private void Bind(int page) { List <Plugin> plugins = GetFilteredList(); // Get the asset count int total = plugins.Count; // Setup the pager BottomPager.CurrentPage = page; BottomPager.PageSize = PageSize; BottomPager.ItemCount = total; BottomPager.CalculatePageCount(); // Setup page variables CurrentPage = page; RecordCount = total; TotalPages = BottomPager.PageCount; //sort the plugins Sort(plugins); // Bind the asset list to relevant page PluginsRepeater.DataSource = plugins.Skip((CurrentPage - 1) * PageSize).Take(PageSize); PluginsRepeater.DataBind(); // Toggle no results panel PluginsRepeater.Visible = (plugins.Count > 0); NoResultsPanel.Visible = (plugins.Count == 0); }
private void RefreshPlugins() { using (DataTable dataSource = new DataTable()) { dataSource.Locale = CultureInfo.InvariantCulture; dataSource.Columns.Add("Name"); dataSource.Columns.Add("FullName"); foreach (string layerName in GetLayerNames()) { DataRow row = dataSource.NewRow(); row["Name"] = layerName; row["FullName"] = layerName; dataSource.Rows.Add(row); } PluginsRepeater.DataSource = dataSource; PluginsRepeater.DataBind(); } }
private void Sort(List <Plugin> plugins) { switch (PluginsRepeater.GetSortExpressions()[0].FieldName.ToLower()) { case "name": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare(x.Name, y.Name)); } else { plugins.Sort((x, y) => string.Compare(y.Name, x.Name)); } break; case "guid": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare((x.RegistrationKey == Guid.Empty ? "N/A" : x.RegistrationKey.ToString()), (y.RegistrationKey == Guid.Empty ? "N/A" : y.RegistrationKey.ToString()))); } else { plugins.Sort((x, y) => string.Compare((y.RegistrationKey == Guid.Empty ? "N/A" : y.RegistrationKey.ToString()), (x.RegistrationKey == Guid.Empty ? "N/A" : x.RegistrationKey.ToString()))); } break; case "version": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => decimal.Compare(x.PluginFile.PluginVersion, y.PluginFile.PluginVersion)); } else { plugins.Sort((x, y) => decimal.Compare(y.PluginFile.PluginVersion, x.PluginFile.PluginVersion)); } break; case "status": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare(GetStatusText(x), GetStatusText(y))); } else { plugins.Sort((x, y) => string.Compare(GetStatusText(y), GetStatusText(x))); } break; case "folder": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare(x.RelativePath, y.RelativePath)); } else { plugins.Sort((x, y) => string.Compare(y.RelativePath, x.RelativePath)); } break; case "contexts": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare(PluginManager.NumberOfContexts(x).ToString(), PluginManager.NumberOfContexts(y).ToString())); } else { plugins.Sort((x, y) => string.Compare(PluginManager.NumberOfContexts(y).ToString(), PluginManager.NumberOfContexts(x).ToString())); } break; case "active": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare((x.IsDisabled ? "No" : "Yes"), (y.IsDisabled ? "No" : "Yes"))); } else { plugins.Sort((x, y) => string.Compare((y.IsDisabled ? "No" : "Yes"), (x.IsDisabled ? "No" : "Yes"))); } break; case "registered": if (PluginsRepeater.GetSortExpressions()[0].IsAscending) { plugins.Sort((x, y) => string.Compare((x.IsUnregistered ? "No" : "Yes"), (y.IsUnregistered ? "No" : "Yes"))); } else { plugins.Sort((x, y) => string.Compare((y.IsUnregistered ? "No" : "Yes"), (x.IsUnregistered ? "No" : "Yes"))); } break; } }
protected void SortListLinkButton_Command(object sender, CommandEventArgs e) { PluginsRepeater.UpdateSortExpression(e.CommandArgument.ToString()); Bind(1); }