TabView
TabView control is a complete solution, with server & client side support.
You can easily ajaxify it by simply placing it inside an update panel.
You can display tabs on top, on bottom, to the left or to the right, using the Orientation property.
You have support for client side through the OnClientBeforeTabChange(here you can cancel the tab switch, by setting args.cancel to true - args is the second parameter passed to the client callback function) and OnClientBeforeTabChange properties
<yui:TabView OnClientAfterTabChange="AfterTabCange" ID="tab" runat="server">
<Tabs>
<yui:TabItem ID="tab1" runat="server" Text="Demo 1">
<ContentTemplate>Hello World!!!</ContentTemplate>
</yui:TabItem>
<yui:TabItem ID="tab2" runat="server" Active="true" Text="Demo 2">
<ContentTemplate>tab 2</ContentTemplate>
</yui:TabItem>
<yui:TabItem ID="tab3" runat="server" Text="Demo 3">
<ContentTemplate>tab 3</ContentTemplate>
</yui:TabItem>
</Tabs>
</yui:TabView>