I have a LinkButton that i am using to activate a tooptip that is displaying a RadGrid of items. When i try to filter the items in the Radgrid the filter menu displays behind the grid. Any help would be appreciated.
A gif of what it looks like is attached.
Code snippets are below.
Markup:
<%@ Register Src="~/Controls/FavoritesTooltip.ascx" TagName="OrderStatusTooltip" TagPrefix="ost" %>
...
<
telerik:RadToolTipManager
ID
=
"RadToolTipManager1"
runat
=
"server"
Position
=
"BottomLeft"
RelativeTo
=
"Element"
ShowEvent
=
"OnClick"
HideEvent
=
"ManualClose"
Animation
=
"Fade"
OnAjaxUpdate
=
"OnShowDeletedItems"
Width
=
"225px"
Style
=
"font-size: 18px; text-align: left; font-family: Arial;"
>
<
TargetControls
>
<
telerik:ToolTipTargetControl
TargetControlID
=
"btnShowDeletedItemsTop"
/>
<
telerik:ToolTipTargetControl
TargetControlID
=
"btnShowDeletedItemsBottom"
/>
</
TargetControls
>
</
telerik:RadToolTipManager
>
...
<
asp:Panel
ID
=
"pnlDeleteItemsLinkTop"
runat
=
"server"
Visible
=
"true"
>
<
p
style
=
"float:left"
>
<
asp:LinkButton
ID
=
"btnShowDeletedItemsTop"
runat
=
"server"
CssClass
=
"button_b"
>
<
span
><%= DeletedItemsPrompt %></
span
>
</
asp:LinkButton
>
</
p
>
</
asp:Panel
>
Code Behind:
protected
void
OnShowDeletedItems(
object
sender, Telerik.Web.UI.ToolTipUpdateEventArgs e)
{
if
(e.TargetControlID ==
"btnShowDeletedItemsBottom"
)
RadToolTipManager1.Position = Telerik.Web.UI.ToolTipPosition.TopLeft;
System.Web.UI.Control ctrl = Page.LoadControl(
"~/Controls/FavoritesTooltip.ascx"
);
e.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl);
StringBuilder sb =
new
StringBuilder();
if
(!CurrentList.Description.IsNullOrWhiteSpace())
sb.AppendFormat(
"{0}'s "
, CurrentList.Description);
sb.Append(
"Deleted Items"
);
Controls_FavoritesTooltip tooltip = (Controls_FavoritesTooltip)ctrl;
tooltip.FavoritesID = CurrentList.Id;
tooltip.FavoritesDescription = CurrentList.Description;
tooltip.Heading = sb.ToString();
}
User Control Markup:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FavoritesTooltip.ascx.cs" Inherits="Controls_FavoritesTooltip" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="Telerik" %>
<
div
id
=
"Tooltip"
class
=
"tooltip"
>
<
asp:Panel
ID
=
"Panel1"
runat
=
"server"
>
<
div
class
=
"header"
id
=
"HeaderContent"
runat
=
"server"
>
<
h4
style
=
"color: White;"
>
<%= Heading %>
</
h4
>
</
div
>
<
telerik:RadGrid
ID
=
"rgDeletedFavoriteItems"
runat
=
"server"
ShowFooter
=
"True"
EnableEmbeddedSkins
=
"false"
GridLines
=
"Both"
AllowSorting
=
"True"
AutoGenerateColumns
=
"false"
Skin
=
"ECISkin"
st
AllowFilteringByColumn
=
"true"
AllowPaging
=
"true"
PageSize
=
"20"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
PagerStyle
Mode
=
"NumericPages"
/>
<
MasterTableView
DataKeyNames
=
"OldItemCompany,OldItemNumber"
NoMasterRecordsText
=
"No Items Found"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"OldItemCompany"
SortExpression
=
"OldItemCompany"
HeaderText
=
"Item Company"
UniqueName
=
"OldItemCompany"
FilterControlWidth
=
"40px"
ConvertEmptyStringToNull
=
"false"
>
<
ItemStyle
Width
=
"40px"
HorizontalAlign
=
"Left"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"OldItemNumber"
SortExpression
=
"OldItemNumber"
HeaderText
=
"Item Number"
UniqueName
=
"SiteAccount"
FilterControlWidth
=
"80px"
ConvertEmptyStringToNull
=
"false"
>
<
ItemStyle
Width
=
"80px"
HorizontalAlign
=
"Left"
/>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
asp:Panel
>
</
div
>
User Control Code Behind:
public
partial
class
Controls_FavoritesTooltip : System.Web.UI.UserControl
{
private
Guid _favoritesID = Guid.Empty;
private
string
_favoritesDescription = String.Empty;
private
string
_heading = String.Empty;
public
Guid FavoritesID
{
get
{
return
_favoritesID; }
set
{ _favoritesID = value; }
}
public
string
FavoritesDescription
{
get
{
return
_favoritesDescription; }
set
{ _favoritesDescription = value; }
}
public
string
Heading
{
get
{
return
_heading; }
set
{ _heading = value; }
}
#region OnInit
protected
override
void
OnInit(EventArgs e)
{
rgDeletedFavoriteItems.NeedDataSource += rgDeletedFavoriteItems_NeedDataSource;
base
.OnInit(e);
}
#endregion
protected
override
void
OnLoad(EventArgs e)
{
if
(Heading.IsNullOrWhiteSpace())
Heading = FavoritesDescription;
base
.OnLoad(e);
}
void
rgDeletedFavoriteItems_NeedDataSource(
object
sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
string
lastSku =
string
.Empty;
List<FavoritesFactory.ChangedFaveItem> deletedList =
new
List<FavoritesFactory.ChangedFaveItem>();
using
(SqlCommand command =
new
SqlCommand(
"[dbo].[usp_ItemListDetailLogGetList]"
) { CommandType = CommandType.StoredProcedure })
{
command.Parameters.Add(
new
SqlParameter(
"@ItemListID"
, SqlDbType.UniqueIdentifier)).Value = FavoritesID;
command.Parameters.Add(
new
SqlParameter(
"@ActionID"
, SqlDbType.VarChar)).Value = 6;
// delete actionid
using
(SqlBuilder sqlBuilder =
new
SqlBuilder())
using
(SafeDataReader reader =
new
SafeDataReader(sqlBuilder.ExecuteReader(command)))
while
(reader.Read())
{
FavoritesFactory.ChangedFaveItem cfi =
new
FavoritesFactory.ChangedFaveItem
{
NewItemCompany = reader.GetString(
"NewItemCompany"
),
NewItemNumber = reader.GetString(
"NewItemNumber"
),
OldItemCompany = reader.GetString(
"OldItemCompany"
),
OldItemNumber = reader.GetString(
"OldItemNumber"
)
};
if
(lastSku != cfi.OldSku)
{
lastSku = cfi.OldSku;
deletedList.Add(cfi);
}
}
}
rgDeletedFavoriteItems.DataSource = deletedList;
}
}