Version: 2.0 |

ListGroup

in namespace DotVVM.Framework.Controls.Bootstrap4

Renders a Bootstrap list group of items, links or buttons.

Properties

Name Type Description Notes Default Value
BadgeBinding Badge Gets or sets a binding which defines the contents of the badge that will be created in each item. Use this property in combination with the DataSource property.
attribute
inner element
static value
bindable
default
ClickBinding ICommandBinding Gets or sets a binding which defines a click action for button items.
attribute
inner element
static value
bindable
default
ColorBinding IValueBinding Gets or sets a binding which defines color of each generated item. Use this property in combination with the DataSource property.
attribute
inner element
static value
bindable
default
DataSource Object Gets or sets the source collection or a GridViewDataSet that contains data in the control.
attribute
inner element
static value
bindable
default
IsEnabledBinding IValueBinding Gets or sets a value binding that points to a property indicating whether the item is disabled or not.
attribute
inner element
static value
bindable
default
IsFlush Boolean Gets or sets whether to remove some borders and rounded corners to render list group items edge-to-edge in a parent container.
attribute
inner element
static value
bindable
default
False
IsSelectedBinding IValueBinding Gets or sets a value binding that points to a property indicating whether the item is selected or not.
attribute
inner element
static value
bindable
default
Items List<IListGroupItem> Gets or sets a collection of items that is used when no DataSource is set.
attribute
inner element
static value
bindable
default
ItemsContentTemplate ITemplate Gets or sets the template for contents of the generated items when using the DataSource property.
attribute
inner element
static value
bindable
default
ItemType ListGroupItemType Gets or sets the type of the items.
attribute
inner element
static value
bindable
default
Default
NavigateUrlBinding IValueBinding Gets or sets the value binding that points to a property which will be navigated to when the item is clicked.
attribute
inner element
static value
bindable
default
ScrollSpyEnabled Boolean
attribute
inner element
static value
bindable
default
False
ScrollSpyOffset Int32
attribute
inner element
static value
bindable
default
10
TextBinding IValueBinding Gets or sets the value binding that points to a property which will be used as the text of the item.
attribute
inner element
static value
bindable
default

Events

Name Type Description

Usage & Scenarios

Renders a Bootstrap list group of items, links or buttons.

https://getbootstrap.com/docs/4.1/components/list-group/

HTML Rendered by the Control

Sample 1: Basic ListGroup

Each item inside the ListGroup is represented by the ListGroupItem control.

Place the items inside the ListGroup.

<bs:ListGroup>
  <bs:ListGroupItem Text="{value: Text}" />
  <bs:ListGroupItem Text="Item 2" />
  <bs:ListGroupItem Text="Item 3" />
  <bs:ListGroupItem>
    <h3>Custom content</h3>
    <p>Custom list item content</p>
  </bs:ListGroupItem>
</bs:ListGroup>
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample1
{
    public class ViewModel : DotvvmViewModelBase
    {
        public string Text { get; set; } = "Data-bound text of the item.";
    }
}

Sample 2: ListGroup - Item types

The ListGroup control has the ItemType property which specified the type of list group items - Default, Link and Button.

<bs:ListGroup ItemType="Button">
  <bs:ListGroupItem Text="Item 1" />
  <bs:ListGroupItem Text="Item 2" Color="Default" />
  <bs:ListGroupItem Text="Item 3" Color="Info" />
  <bs:ListGroupItem Text="{value: Text}" Color="Success" />
  <bs:ListGroupItem Text="Item 5" Color="Warning" />
  <bs:ListGroupItem Text="Item 6" Color="Danger" />
</bs:ListGroup>
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample2
{
    public class ViewModel : DotvvmViewModelBase
    {
        public string Text { get; set; } = "This is sample text.";
    }
}

Sample 3: Data-binding

The DataSource property can be used to generate the items from an IEnumerable in the viewmodel.

Then you can use the following properties which tell the control what property of the collection item will be used:

  • TextBinding specifies the property of the collection elements to be used as list item text.
  • BadgeBinding specifies the property of the collection elements to be used as list item badge content.
  • ColorBinding specifies the property of the collection elements to be used as list item color.
  • NavigateUrlBinding specifies the property of the collection elements to be used as list item link URL.
  • IsEnabledBinding specifies the property of the collection elements indicating whether the list item is enabled or not.
  • IsSelectedBinding specifies the property of the collection elements indicating whether the list item is active or not.
  • ClickBinding specifies a command in the viewmodel to be called when the list item is clicked.
<bs:ListGroup ItemType="Link" 
              DataSource="{value: LinksDataSet}" 
              IsDisabledBinding="{value: IsDisabled}" 
              IsSelectedBinding="{value: IsSelected}" 
              TextBinding="{value: Text}" 
              BadgeBinding="{value: Badge}" 
              ColorBinding="{value: Color}" 
              NavigateUrlBinding="{value: NavigateUrl}" />
using DotVVM.Framework.Controls.Bootstrap;
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample3
{
    public class ViewModel : DotvvmViewModelBase
    {
        public List<LinkItem> LinksDataSet => new List<LinkItem>()
        {
            new LinkItem() { IsDisabled = false, IsSelected = false, NavigateUrl = "https://www.google.com/", Text = "Google", Badge = "1 References", Color = ContextualColor.Info },
            new LinkItem() { IsDisabled = false, IsSelected = false, NavigateUrl = "http://www.w3schools.com/html/", Text = "W3Schools", Badge = "8 References", Color = ContextualColor.Success },
            new LinkItem() { IsDisabled = false, IsSelected = true, NavigateUrl = "https://www.microsoft.com/en-us/", Text = "Microsoft", Badge = "3 References", Color = ContextualColor.Warning },
            new LinkItem() { IsDisabled = false, IsSelected = false, NavigateUrl = "https://github.com/riganti/dotvvm", Text = "DotVVM Github", Badge = "15 References", Color = ContextualColor.Danger }
        };
        
    }

    public class LinkItem
    {
        public string Text { get; set; }
        public string NavigateUrl { get; set; }
        public bool IsSelected { get; set; }
        public bool IsDisabled { get; set; }
        public string Badge { get; set; }
        public ContextualColor Color { get; set; }

    }
}

Sample 4: Data-binding

The ClickBinding property can be used when the list group contains the buttons.

<bs:ListGroup ItemType="Button" 
              DataSource="{value: Values}" 
              TextBinding="{value: _this}" 
              ClickBinding="{command: _parent.Select(_this)}" />

Selected item: {{value: SelectedValue}}
using DotVVM.Framework.Controls.Bootstrap;
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample4
{
    public class ViewModel : DotvvmViewModelBase
    {
        public List<string> Values => new List<string>() { "one", "two", "three" };

        public string SelectedValue { get; set; }
        
        
        public void Select(string value)
        {
            SelectedValue = value;
        }
    }
    
}

Sample 5: Badges

The list items can contain Badge controls. USe the Badge inner element property to specify the badge contents.

<bs:ListGroup>
  <bs:ListGroupItem Text="{value: Text}">
    <Badge>
      <bs:Badge>10</bs:Badge>
    </Badge>
  </bs:ListGroupItem>
  <bs:ListGroupItem Text="Item 2">
    <Badge>
      <bs:Badge>2</bs:Badge>
    </Badge>
  </bs:ListGroupItem>
</bs:ListGroup>
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample1
{
    public class ViewModel : DotvvmViewModelBase
    {
        public string Text { get; set; } = "Data-bound text of the item.";
    }
}

Sample 6: Fluid mode

The IsFluid property can be used to render the list group without borders to render the list group items edge-to-edge in a parent container.

<bs:ListGroup IsFluid="true">
  <bs:ListGroupItem Text="{value: Text}" />
  <bs:ListGroupItem Text="Item 2" />
  <bs:ListGroupItem Text="Item 3" />
  <bs:ListGroupItem Text="Item 4" />
</bs:ListGroup>
using DotVVM.Framework.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DotvvmWeb.Views.Docs.Controls.bootstrap.ListGroup.sample1
{
    public class ViewModel : DotvvmViewModelBase
    {
        public string Text { get; set; } = "Data-bound text of the item.";
    }
}

Suggestions


Help & Contribute

The documentation is maintained on GitHub.
We'll be happy if you edit the page and create a pull request.

Send message