I am generating tabs at runtime with close button for each tab, when i select any item from dropdown then it generating tab with close button but without text, check the attached image. when i select another item from dropdown it adding text to already generated tab, but for the tab which is generated last not showing the text, how to solve the issue..
aspx.cs page
class file
aspx.cs page
protected
override
void
OnInit(EventArgs e)
{
RadTabStrip1.TabTemplate =
new
TabTemplate();
base
.OnInit(e);
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
BindUsers();
RadTabStrip1.DataBind();
}
private
void
BindUsers()
{
. .. . . . .
}
protected
void
ddlUsers_SelectedIndexChanged(
object
sender, EventArgs e)
{
if
(ddlUsers.SelectedIndex != 0)
{
if
(RadTabStrip1.Tabs.Count == 0)
{
RadTab Separator =
new
RadTab();
Separator.IsSeparator =
true
;
Separator.Width = Unit.Pixel(50);
RadTabStrip1.Tabs.Add(Separator);
RadTab tab1 =
new
RadTab(ddlUsers.SelectedItem.Text, ddlUsers.SelectedItem.Value);
RadTabStrip1.Tabs.Add(tab1);
RadTabStrip1.Tabs.FindTabByText(ddlUsers.SelectedItem.Text).Selected =
true
;
}
else
if
(RadTabStrip1.Tabs.Count > 0 && RadTabStrip1.FindTabByText(ddlUsers.SelectedItem.Text) ==
null
)
{
//RadTab Separator = new RadTab();
//Separator.IsSeparator = true;
//Separator.Width = Unit.Pixel(5);
//RadTabStrip1.Tabs.Add(Separator);
RadTab tab1 =
new
RadTab(ddlUsers.SelectedItem.Text, ddlUsers.SelectedItem.Value);
RadTabStrip1.Tabs.Add(tab1);
RadTabStrip1.Tabs.FindTabByText(ddlUsers.SelectedItem.Text).Selected =
true
;
}
else
RadTabStrip1.Tabs.FindTabByText(ddlUsers.SelectedItem.Text).Selected =
true
;
GetDashboards(ddlUsers.SelectedItem.Text);
}
else
{
ddlDashboards.Items.Clear();
ddlDashboards.DataSource = CreateEmptyDataTable();
ddlDashboards.DataTextField =
"DashboardTitle"
;
ddlDashboards.DataValueField =
"DashboardKey"
;
ddlDashboards.DataBind();
}
}
class file
class
TabTemplate : ITemplate
{
public
void
InstantiateIn(Control container)
{
Label lbl =
new
Label();
lbl.ID =
"ItemLabel"
;
//lbl.Text = "";
lbl.DataBinding +=
new
EventHandler(lbl_DataBinding);
ImageButton ImgBtnClose =
new
ImageButton()
{
ImageUrl =
"../../Images/delete1.gif"
,
CssClass =
"image"
};
ImgBtnClose.Click +=
new
ImageClickEventHandler(ImgBtnClose_Click);
ImgBtnClose.Attributes.Add(
"onclick"
,
"return confirm('Do you want to close this tab.');"
);
container.Controls.Add(lbl);
container.Controls.Add(ImgBtnClose);
}
void
ImgBtnClose_Click(
object
sender, ImageClickEventArgs e)
{
ImageButton target = (ImageButton)sender;
RadTab tab = (RadTab)target.BindingContainer;
RadTabStrip tabStrip = (RadTabStrip)tab.Parent;
tabStrip.Tabs.Remove(tab);
}
private
void
lbl_DataBinding(
object
sender, EventArgs e)
{
Label target = (Label)sender;
RadTab tab = (RadTab)target.BindingContainer;
string
tabText = (
string
)DataBinder.Eval(tab,
"Text"
);
target.Text = tabText;
}
}