Wisej's DataRepeater
The alternative for redesigning or replacing a DataGridView

Wisej's DataRepeater - The best alternative for redesigning or replacing a DataGridView

Wisej DataRepeater was introduced with the Wisej 2.1 version, and it is the best alternative for redesigning/replacing a DataGridView. It repeats a template container (Panel) with child controls. The Wisej DataRepeater can also be utilized when the web application should be usable on mobile devices. Instead of having a DataGridView with rows and many columns, the Wisej DataRepeater can display the information of a record in multiple lines, with different control types, and with a custom layout.

On the client side, only a limited number of containers will be generated for the visible area. A virtual scrolling is implemented, and when the user scrolls up/down the next/previous records will populate the same containers. The virtual scrolling functionality is similar for TreeView items, ComboBox items, ListBox items and ListView items. For a smoother scrolling you can use the PrefetchItems property. The default value for PrefetchItems is 0 – any value greater than 0 represents the number of additional containers which will be created on client side for pre-loading the next/previous items.

In the following sample, a DataRepeater control was added to a form, which will display a list of products. A ProductModel class with title, detail, price, image and availability was added too. Additionally, a BindingSource component with ProductModel type as data source is used to bind the ProductModel with the controls added to the DataRepeater.

ProductModel class:

public class ProductModel
    private string productTitle;
private bool inStock;
private decimal price;
private string image;
private string productDetail;
public string ProductTitle { get => productTitle; set => productTitle = value; }
public bool InStock { get => inStock; set => inStock = value; }
public decimal Price { get => price; set => price = value; }
public string ProductDetail { get => productDetail; set => productDetail = value; }
public string Image { get => image; set => image = value; } }

Form designer with the DataRepeater control:

DataRepeater at runtime:

Download: DataRepeater Sample (Zip file)