Example #1
0
    /// <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();
    }