Skip to main content
Tab

ASPxTabControlBase.ActiveTabChanging Event

Fires on the server side before the active tab is changed within a tab control.

Namespace: DevExpress.Web

Assembly: DevExpress.Web.v23.2.dll

NuGet Package: DevExpress.Web

Declaration

public event TabControlCancelEventHandler ActiveTabChanging

Event Data

The ActiveTabChanging event's data class is TabControlCancelEventArgs. The following properties provide information specific to this event:

Property Description
Cancel Gets or sets a value indicating whether the command which raised an event should be canceled.
Tab Gets a tab object related to the event. Inherited from TabControlEventArgs.

Remarks

Write an ActiveTabChanging event handler to perform specific actions on the server side each time before the selected tab changes.

You can use the event parameter’s properties to identify the new active tab (Tab) and cancel the execution of the command if necessary (Cancel).

When a user changes the active tab, a control (ASPxTabControl or ASPxPageControl) might raise the following events:

The following two properties control which events to generate:

Note

The processOnServer property’s default value is equal to a control’s AutoPostBack property setting.

The value of the AutoPostBack property affects the event generation logic as follows:

You can set the Cancel property to true in an ActiveTabChanging event handler to cancel the tab change. In this case, the server-side ActiveTabChanged event is not generated and the active tab is not changed.

Example: Use AutoPostBack to Handle Events on the Server

This example enables the AutoPostBack property to make a control process ActiveTabChanging and ActiveTabChanged events on the server.

<dx:ASPxLabel ID="ActiveTabLabel" runat="server"/>
<dx:ASPxCheckBox ID="AllowTabChange" runat="server" Text="Allow Tab Change" Checked="True" CheckState="Checked"/>
<dx:ASPxTabControl ID="TabControl" runat="server" 
                   AutoPostBack="True"
                   OnActiveTabChanging="TabControl_ActiveTabChanging"
                   OnActiveTabChanged="TabControl_ActiveTabChanged">
  <Tabs>
    <dx:Tab Text="Tab1"/>
    <dx:Tab Text="Tab2"/>
    <dx:Tab Text="Tab3"/>
  </Tabs>
</dx:ASPxTabControl>
protected void TabControl_ActiveTabChanging(object source, DevExpress.Web.TabControlCancelEventArgs e){
    //Based on the checkbox state, specify whether to cancel the tab change.
    e.Cancel = !AllowTabChange.Checked;
}

protected void TabControl_ActiveTabChanged(object source, DevExpress.WebTabControlEventArgs e){
    //Display the name of the active tab.
    ActiveTabLabel.Text = $"Active Tab: {e.Tab.Text}";
}

Example: Use processOnServer to Pass Event Handling to the Server

This example shows how to make a control with the disabled AutoPostBack property generate the server-side ActiveTabChanging and ActiveTabChanged events. Enable the processOnServer property in a client-side ActiveTabChanging event handler to pass event processing to the server.

<dx:ASPxLabel ID="ActiveTabLabel" runat="server"/>
<dx:ASPxCheckBox ID="AllowTabChange" runat="server" Text="Allow Tab Change" Checked="True" CheckState="Checked"/>
<dx:ASPxTabControl ID="TabControl" runat="server"  
    OnActiveTabChanging="TabControl_ActiveTabChanging" 
    OnActiveTabChanged="TabControl_ActiveTabChanged"
    AutoPostBack="False">
    <Tabs>
        <dx:Tab Text="Tab 1"/>
        <dx:Tab Text="Tab 2"/>
        <dx:Tab Text="Tab 3"/>
    </Tabs>
    <ClientSideEvents ActiveTabChanging="function(s, e) {
        //Pass tab change processing to the server.
        e.processOnServer = true;
    }" />
</dx:ASPxTabControl>
protected void TabControl_ActiveTabChanging(object source, DevExpress.Web.TabControlCancelEventArgs e){
    //Based on the checkbox state, specify whether to cancel the tab change.
    e.Cancel = !AllowTabChange.Checked;
}

protected void TabControl_ActiveTabChanged(object source, DevExpress.Web.TabControlEventArgs e){
    //Display the name of the active tab.
    ActiveTabLabel.Text = $"Active Tab: {e.ActiveTab.Text}";
}
See Also