Much like the event handling exposed by the Document Object Model, the client-side tabstrip object allows both singlecast and multicast event handler binding.
=== 1. singlecast event handling ===
The singlecast event handling is the simplest way to execute user code when an event occurs. It is done by a direct assignment.
<script type="text/javascript">
function OnTabSelectedHandler()
{
alert("tab");
}
RadTabStrip1.OnClientTabSelected = OnTabSelectedHandler;
</script>
=== 2. multicast event handling ===
If you want multiple listeners to respond to a certain event, you should use multicast event handling. The example below demonstrates how to bind multiple event handlers to the
OnClientTabSelected event of the tabstrip.
<script type="text/javascript">
function OnTabSelectedHandler1()
{
alert("first handler called");
}
function OnTabSelectedHandler2()
{
alert("second handler called");
}
RadTabStrip1.AttachEvent("OnClientTabSelected", OnTabSelectedHandler1);
RadTabStrip1.AttachEvent("OnClientTabSelected", OnTabSelectedHandler2);
</script>
Another advantage of multicast event handlers is the possiblity of detaching a certain handler dynamically. You may use the
DetachEvent method of the tabstrip object.
<script type="text/javascript">
RadTabStrip1.DetachEvent("OnClientTabSelected", OnTabSelectedHandler1);
</script>
=== 3. event hanlders formatting ===
To conform with the Document Object Model we have exposed 3 available formats for event handler definition. These formats are supported both for singlecast and multicast event handling.
- 1. Function reference
- First you define a function, then you pass a reference to it.
<script type="text/javascript">
function OnTabSelectedHandler()
{
alert("first hadler called");
}
RadTabStrip1.OnClientTabSelected = OnTabSelectedHandler;
</script>
- 2. Function name (string)
- First you define a function, then you pass its name as an event handler.
<script type="text/javascript">
function OnTabSelectedHandler()
{
alert("first hadler called");
}
RadTabStrip1.OnClientTabSelected = "OnTabSelectedHandler";
</script>
- 3. String containing executable code
- Useful for simple scenarios. The string passed is evaluated when the event handler is called.
<script type="text/javascript">
RadTabStrip1.OnClientTabSelected = "alert('first hadler called')";
</script>
=== 4. Cancelling an event ===
In general, the events which are named with
ing suffix (
OnClientTabSelecting for instance), can be cancelled if you explicitly return
false from a handler. The following code cancels a tab selection:
<script type="text/javascript">
function OnTabSelectingHandler()
{
alert("tab not selected");
return false;
}
RadTabStrip1.OnClientTabSelecting = "OnTabSelectingHandler";
</script>
=== 5. Enabling and Disabling events ===
If you want for some reason to temporary "mute" the control event emitting, you may use
DisableEvents and
EnableEvents methods.
<script type="text/javascript">
function OnTabSelectedHandler()
{
alert("tab not selected");
return false;
}
RadTabStrip1.OnClientTabSelected = OnTabSelectedHandler;
// This will trigger the event...
RadTabStrip1.Tabs[0].Select();
RadTabStrip1.DisableEvents();
// but this will not.
RadTabStrip1.Tabs[0].Select();
RadTabStrip1.EnableEvents();
// The events are enabled - the event handlers will be executed.
RadTabStrip1.Tabs[0].Select();
</script>