/// <summary> /// Generates variants, builds UniGrid and binds data to it. /// </summary> private void SetupVariants(bool regenerate = true) { // Do not setup variants, when callback is requesting page if (RequestHelper.IsCallback()) { return; } // Limit maximum variants count const int maxVariantsCount = 1000; if (VariantHelper.GetAllPossibleVariantsCount(ProductID, CategorySelector.SelectedCategories.Keys) > maxVariantsCount) { ShowWarning(GetString("com.variants.variantlimit")); return; } if (regenerate) { // Generate Variants mGeneratedVariants = GenerateVariants(); ExistingItems = null; } // Set UniGrid columns and other properties VariantGrid.GridColumns.Columns = mColumnDefinitions; VariantGrid.GridOptions.DisplayFilter = false; VariantGrid.GridOptions.ShowSelection = true; VariantGrid.GridOptions.SelectionColumn = "RowNumber"; var existingItems = ExistingItems; VariantGrid.SelectedItems = ((existingItems != null) && (existingItems.Count > 0)) ? existingItems : VariantGrid.SelectedItems; // Bind data to UniGrid VariantGrid.DataSource = mGeneratedVariants; VariantGrid.ReloadData(); }