First Issue:
I have a WebDataMenu that drives what tabs are created in the WebTab. If you select an item in the WebDataMenu, a new tab is created. Great. If you delete that tab, it's removed. Great. Now, go to the WebDataMenu and select another item--no tab is loaded this time. The code-behind here is firing, and the function completes it's action, but the WebTab never updates appropriately.
**Update** It's not just the delete--once I add a tab, it will no longer add additional tabs either.
The WebTab
<ig:WebTab ID="UCContainer" runat="server" Width="100%" height="100%"
TabLocation="BottomLeft" AutoPostBackFlags-TabClosed="Async"
EnableActivation="True" OnTabItemClosed="UCContainer_TabItemClosed">
<ClientEvents Loaded="WebTab_Load" TabClosed="WebTab_Load" />
<Tabs>
<ig:ContentTabItem runat="server" Text="Workspace" EnableCloseButton="False">
</ig:ContentTabItem>
</Tabs>
<CloseButton Enabled="True" />
<ContentPane AutoSize="True">
</ContentPane>
<PostBackOptions EnableAjax="True" />
<TabMoving Enabled="True" />
</ig:WebTab>
The Function to Add Tabs
void _master_MenuItemSelected(object sender, ClientCommon.MenuItemSelectedEventArgs args)
{
ContentTabItem _Item = new ContentTabItem();
_Item.Text = args.ItemName;
_Item.ContentUrl = args.ItemUrl;
UCContainer.Tabs.Add(_Item);
UCContainer.SelectedIndex = UCContainer.Tabs.IndexOf(_Item);
}
The Second Issue:
The first tab in the collection is the user's Workspace--this tab will never be deleted, as the tab close button is hidden on this element. If a user adds a new tab, then deletes it, I want to set the SelectedIndex property to the previous tab in the list. If there are two tabs 'Workspace being index 0' and 'NewTab being index 1', when 'NewTab' is closed, I want to set the focus back to the 'Workspace' tab. Here is the code that I have in place to attempt to do this--you will see that the event is plugged into the smart tag for the WebTab above:
protected void UCContainer_TabItemClosed(object sender, TabItemEventArgs e)
int _selIndex = UCContainer.Tabs.IndexOf(e.TabItem) - 1;
UCContainer.SelectedIndex = _selIndex;
This doesn't work--the selected index is set on the server side, but that selection is never reflected on the client side.
Any help is greatly appreciated.
Hello Anthony.I know a couple of months have passed since you asked this issue but I would be glad if I can help. Please take a look at the attached from me sample via 11.2.20112.1019 and is made based on your code snippets and scenario. The first issue is not reproducible. The second issue got resolved after removing Async postback and setting it to full when tab is closed which causes full rendering of the control.