Button

in namespace DotVVM.BusinessPack.Controls

Renders the HTML button that is able to trigger a postback.

Usage & Scenarios

Inherits the built-in Button control with a DotVVM Business Pack visual style.

Sample 1: Basic Usage

The Button control has a Text property that holds the text displayed in the button.

In the Click event you can specify which method will be called in the viewmodel.

<p>Clicks count: {{value: ClicksCount}}</p>

<bp:Button Text="Click me!"
           Click="{command: Click()}" />
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.Button.sample1
{
    public class ViewModel : DotvvmViewModelBase
    {
        public int ClicksCount { get; set; }

        public void Click()
        {
            ClicksCount++;
        }
    }
}

Sample 2: Disable or Hide the Button

To disable or enable the button, use the Enabled property. It supports the data-binding.

It's also possible to hide the button completely by using the Visible property.

<p>Show button is enabled only when Hide button is visible.</p>

<bp:Button Text="Show Button"
           Enabled="{value: IsEnabled}"
           Click="{command: ShowButton()}" />

<bp:Button Text="Hide Button"
           Visible="{value: IsVisible}"
           Click="{command: HideButton()}" />
using DotVVM.Framework.ViewModel;

namespace DotvvmWeb.Views.Docs.Controls.businesspack.Button.sample2
{
    public class ViewModel : DotvvmViewModelBase
    {
        public bool IsEnabled { get; set; }
        public bool IsVisible { get; set; } = true;

        public void ShowButton()
        {
            IsEnabled = false;
            IsVisible = true;
        }

        public void HideButton()
        {
            IsVisible = false;
            IsEnabled = true;
        }
    }
}

Sample 3: Button Types

The Button control has the ButtonTagName property which specifies the tag rendered by the button. You can also choose whether it is a submit button or a normal button using the IsSubmitButton property.

The Type of the button cen be set to Primary, Secondary, Success, Info, Warning and Danger. It will change button's color and style.

<bp:Button Text="Button"
           ButtonTagName="button"
           Type="Info" />

<br />

<bp:Button Text="Input Button"
           ButtonTagName="input" />

<br />

<bp:Button Text="Submit Button"
           IsSubmitButton="true"
           Type="Primary" />

Sample 4: Image in the Button

The <button> tag supports more than just a text in the button. Instead of using the Text property, you can put the content inside the button.

<bp:Button ButtonTagName="button">
    <img src="~/Resources/Images/dotvvm.png" />
    <p>Custom Button with Image<p />
</bp:Button>

Properties

Name Type Description Notes Default Value
property icon Attributes Dictionary<String,Object>
attribute
inner element
static value
bindable
default
null
property icon AutoFocus Boolean Gets or sets whether the control should have focus when page loads or when a dialog is opened. The default value is false.
attribute
inner element
static value
bindable
default
False
property icon ButtonTagName ButtonTagName Gets or sets whether the control should render the <input> or the <button> tag in the HTML.
attribute
inner element
static value
bindable
default
input
property icon ClientIDMode ClientIDMode Gets or sets the client ID generation algorithm.
attribute
inner element
static value
bindable
default
Static
property icon DataContext Object Gets or sets a data context for the control and its children. All value and command bindings are evaluated in context of this value.
attribute
inner element
static value
bindable
default
null
property icon Enabled Boolean Gets or sets a value indicating whether the button is enabled and can be clicked on.
attribute
inner element
static value
bindable
default
True
property icon ID String Gets or sets the unique control ID.
attribute
inner element
static value
bindable
default
null
property icon InnerText String Gets or sets the inner text of the HTML element.
attribute
inner element
static value
bindable
default
null
property icon IsSubmitButton Boolean Gets or sets whether the control should render a submit button or a normal button (type="submit" or type="button"). The submit button has some special features in the browsers, e.g. handles the Return key in HTML forms etc.
attribute
inner element
static value
bindable
default
False
property icon TabIndex Int32 Gets or sets the order in which the control is reachable in sequential keyboard navigation. The default value is 0 which means the document order.
attribute
inner element
static value
bindable
default
0
property icon Text String Gets or sets the text on the button.
attribute
inner element
static value
bindable
default
property icon Type ButtonType? Gets or sets the type (color) of the Button.
attribute
inner element
static value
bindable
default
null
property icon Visible Boolean Gets or sets whether the control is visible.
attribute
inner element
static value
bindable
default
True

Events

Name Type Description
event icon Click Command Gets or sets the command that will be triggered when the button is clicked.

HTML produced by the control

Depending on the ButtonTagName property, the control renders one of these HTML elements:

<input type="submit" value="Text" />
<button type="submit">Text</button>