Team
I am using radalert in my application.
I have a requirement to close radalert box on ESC key press.
I have done some search & found the following link
Is it available in DLL V2011.3.1115.40?
Can you please let me know whether it is possible or not & if yes then please let me know How I can implement this?
<
telerik:AjaxSetting
AjaxControlID
=
"_btnSearch"
EventName
=
"OnClick"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
>Untitled Page</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
autocomplete
=
"false"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<!-- content start -->
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"_btnSearch"
EventName
=
"OnClick"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
Height
=
"100%"
Width
=
"300px"
OnLoad
=
"RadAjaxPanel1_Load"
>
<
table
>
<
tr
>
<
td
style
=
"width: 150px;"
>
Search By</
td
>
<
td
style
=
"width: 5px;"
>
:</
td
>
<
td
style
=
"width: 150px;"
>
<
asp:DropDownList
ID
=
"_cboSearchBy"
runat
=
"server"
Width
=
"150px"
>
</
asp:DropDownList
>
</
td
>
<
td
style
=
"width: 25px"
>
<
asp:TextBox
ID
=
"_txtPrefix"
runat
=
"server"
Width
=
"25px"
AutoPostBack
=
"false"
AutoCompleteType
=
"none"
></
asp:TextBox
></
td
>
<
td
style
=
"width: 200px;"
>
<
asp:TextBox
ID
=
"_txtFind"
runat
=
"server"
Width
=
"200px"
AutoPostBack
=
"false"
AutoCompleteType
=
"none"
></
asp:TextBox
></
td
>
<
td
style
=
"width: 25px"
>
<
asp:TextBox
ID
=
"_txtSuffix"
runat
=
"server"
Width
=
"25px"
AutoPostBack
=
"false"
AutoCompleteType
=
"none"
></
asp:TextBox
></
td
>
<
td
style
=
"width: 50px"
>
<
asp:Button
ID
=
"_btnSearch"
runat
=
"server"
Text
=
"Search"
Width
=
"50px"
OnClick
=
"_btnSearch_Click"
/>
</
td
>
</
tr
>
</
table
>
</
telerik:RadAjaxPanel
>
<
telerik:RadGrid
ID
=
"RadGrid1"
Width
=
"97%"
AllowPaging
=
"True"
PageSize
=
"15"
runat
=
"server"
AllowSorting
=
"true"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
GridLines
=
"None"
OnItemCommand
=
"RadGrid1_ItemCommand"
>
<
MasterTableView
Width
=
"100%"
EditMode
=
""
AllowAutomaticUpdates
=
"false"
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
EditText
=
"Edit"
HeaderStyle-Width
=
"30"
ItemStyle-Width
=
"30"
HeaderStyle-HorizontalAlign
=
"center"
ItemStyle-HorizontalAlign
=
"center"
>
</
telerik:GridEditCommandColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
/>
<
FilterMenu
EnableTheming
=
"True"
>
<
CollapseAnimation
Duration
=
"200"
Type
=
"OutQuint"
/>
</
FilterMenu
>
</
telerik:RadGrid
>
<!-- content end -->
</
div
>
</
form
>
</
body
>
</
html
>
public
DataTable GetDataTable(
string
query)
{
String ConnString = ConfigurationManager.ConnectionStrings[
"NorthwindConnectionString"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(query, conn);
DataTable myDataTable =
new
DataTable();
conn.Open();
try
{
adapter.Fill(myDataTable);
}
finally
{
conn.Close();
}
return
myDataTable;
}
protected
void
RadGrid1_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = GetDataTable(
"SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers"
);
}
protected
void
_btnSearch_Click(
object
sender, EventArgs e)
{
if
(_txtFind.Text.Trim()!=
""
)
RadGrid1.DataSource = GetDataTable(
"SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers where CustomerID='"
+ _txtFind.Text.Trim() +
"'"
);
else
RadGrid1.DataSource = GetDataTable(
"SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers"
);
RadGrid1.Rebind();
}
protected
void
RadAjaxPanel1_Load(
object
sender, EventArgs e)
{
}
protected
void
RadGrid1_ItemCommand(
object
sender, Telerik.Web.UI.GridCommandEventArgs e)
{
//e.Canceled = true;
}
I'm trying to use RadGrid inside RadMultiPage and noticed the problem with selecting grid rows on the client side.
Sometimes the get_selectedItems() method returns the array with valid number of items, but the items are undefined.
Please see the attached code.
Test scenario:
1. Start application, Data1 tab is activated.
2. Click checkbox inside GridClientSelectColumn header to select all rows.
3. Click [Test selected rows] button.
---> Problem: returned items are empty. Close the message box.
4. Click the row with ID=5 to select only this row.
5. Click [Test selected rows] button.
---> Works fine. Close the message box.
6: Click checkbox inside GridClientSelectColumn header to select all rows.
7. Click [Test selected rows] button.
---> Works fine. Close the message box.
8. Click the row with ID=5 to select only this row.
6. Click tab [Data2] to change tab.
7. Click tab [Data1] to return to first tab. Row with ID=5 is selected.
8. Click [Test selected rows] button.
---> Problem: returned item is empty. Close the message box.
Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4.Default" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptBlock
ID
=
"radScriptBlock"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function radTabStrip_TabSelecting(sender, args)
{
var tab = args.get_tab();
var multiPage = $find(sender.get_multiPageID());
var pageView = multiPage.findPageViewByID(tab.get_pageViewID());
if(pageView.get_element())
tab.set_postBack(false);
}
function btnTestSelectedItems1_Clicked(sender, args)
{
TestSelectedItems('<%= grdData1.ClientID %>');
}
function btnTestSelectedItems2_Clicked(sender, args)
{
TestSelectedItems('<%= grdData2.ClientID %>');
}
function btnTestSelectedItems3_Clicked(sender, args)
{
TestSelectedItems('<%= grdData3.ClientID %>');
}
function TestSelectedItems(grd)
{
var items = $find(grd).get_selectedItems();
var msg = "Number of selected items: " + items.length + "\n\n";
for(var i = 0; i <
items.length
; i++)
{
msg += "Item" + i + ": ";
var
item
=
items
[i];
if(item)
msg += "
ID
=
" + item.getDataKeyValue("
ID");
else
msg += "null";
msg += "\n"
}
alert(msg);
}
</script>
</
telerik:RadScriptBlock
>
<
telerik:RadScriptManager
ID
=
"radScriptManager"
runat
=
"server"
/>
<
telerik:RadAjaxLoadingPanel
ID
=
"radLoadingPanel"
runat
=
"server"
/>
<
telerik:RadTabStrip
ID
=
"radTabStrip"
runat
=
"server"
MultiPageID
=
"radMultiPage"
SelectedIndex
=
"0"
OnClientTabSelecting
=
"radTabStrip_TabSelecting"
OnTabClick
=
"radTabStrip_TabClick"
>
<
Tabs
>
<
telerik:RadTab
Text
=
"Data1"
PageViewID
=
"pagData1"
>
</
telerik:RadTab
>
<
telerik:RadTab
Text
=
"Data2"
PageViewID
=
"pagData2"
>
</
telerik:RadTab
>
<
telerik:RadTab
Text
=
"Data3"
PageViewID
=
"pagData3"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"radMultiPage"
runat
=
"server"
SelectedIndex
=
"0"
>
<
telerik:RadPageView
ID
=
"pagData1"
runat
=
"server"
Visible
=
"false"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"grdData1"
AllowPaging
=
"True"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"True"
ClientSettings-EnableRowHoverStyle
=
"true"
OnNeedDataSource
=
"grdData_NeedDataSource"
>
<
MasterTableView
ClientDataKeyNames
=
"ID"
>
<
Columns
>
<
telerik:GridClientSelectColumn
/>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
</
telerik:RadGrid
>
<
telerik:RadButton
ID
=
"btnTestSelectedItems1"
runat
=
"server"
Text
=
"Test selected rows"
AutoPostBack
=
"false"
OnClientClicked
=
"btnTestSelectedItems1_Clicked"
/>
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"pagData2"
runat
=
"server"
Visible
=
"false"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"grdData2"
AllowPaging
=
"True"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"True"
ClientSettings-EnableRowHoverStyle
=
"true"
OnNeedDataSource
=
"grdData_NeedDataSource"
>
<
MasterTableView
ClientDataKeyNames
=
"ID"
>
<
Columns
>
<
telerik:GridClientSelectColumn
/>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
</
telerik:RadGrid
>
<
telerik:RadButton
ID
=
"btnTestSelectedItems2"
runat
=
"server"
Text
=
"Test selected rows"
AutoPostBack
=
"false"
OnClientClicked
=
"btnTestSelectedItems2_Clicked"
/>
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"pagData3"
runat
=
"server"
Visible
=
"false"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"grdData3"
AllowPaging
=
"True"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"True"
ClientSettings-EnableRowHoverStyle
=
"true"
OnNeedDataSource
=
"grdData_NeedDataSource"
>
<
MasterTableView
ClientDataKeyNames
=
"ID"
>
<
Columns
>
<
telerik:GridClientSelectColumn
/>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
</
telerik:RadGrid
>
<
telerik:RadButton
ID
=
"btnTestSelectedItems3"
runat
=
"server"
Text
=
"Test selected rows"
AutoPostBack
=
"false"
OnClientClicked
=
"btnTestSelectedItems3_Clicked"
/>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"radAjaxManager"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"radTabStrip"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"radTabStrip"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"radMultiPage"
LoadingPanelID
=
"radLoadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
</
form
>
</
body
>
</
html
>
using System;
using System.Data;
using System.Web.UI;
using Telerik.Web.UI;
namespace WebApplication4
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!this.IsPostBack)
this.pagData1.Visible = true;
}
protected void radTabStrip_TabClick(object sender, Telerik.Web.UI.RadTabStripEventArgs e)
{
e.Tab.PageView.Visible = true;
e.Tab.PageView.Selected = true;
foreach(Control control in e.Tab.PageView.Controls)
if(control is RadGrid)
((RadGrid)control).Rebind();
}
protected void grdData_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
((RadGrid)sender).DataSource = this.GetDataTable();
}
protected DataTable GetDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Day", typeof(string));
dt.Columns.Add("Date", typeof(DateTime));
Random r = new Random();
for(int i = 0; i < 100; i++)
{
DateTime dateTime = DateTime.Now.AddSeconds(-r.Next((int)TimeSpan.FromDays(365).TotalSeconds));
dt.Rows.Add(i + 1, dateTime.DayOfWeek.ToString(), dateTime);
}
return dt;
}
}
}
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel4"
runat
=
"server"
Skin
=
"Black"
/>
<
telerik:RadAjaxPanel
ClientEvents-OnRequestStart
=
"OnRequestStart"
ID
=
"RadAjaxPanel5"
runat
=
"server"
>
<
telerik:raddockzone
runat
=
"server"
id
=
"RadDockZone6"
Orientation
=
Vertical
style
=
"float:right;background: white;min-height:50"
Width
=
"99%"
height
=
"420"
Skin
=
"Black"
>
<
telerik:raddock
DefaultCommands
=
None
OnCommand
=
"RadDock_Command"
EnableDrag
=
false
runat
=
"server"
id
=
"RadDock5"
style
=
"float:none;"
title
=
""
dockmode
=
"Docked"
Width
=
"50%"
Height
=
"420"
EnableAnimation
=
"false"
Skin
=
"Black"
>
</
telerik:raddock
>
</
telerik:raddockzone
>
</
telerik:RadAjaxPanel
>
private
void
Notify(
string
strTitle,
bool
bsent =
true
)
{
if
(DevicesRadGrid.SelectedItems.Count > 1)
{
if
(bsent)
NotificationText.Text = String.Format(
"sent {0}"
, DevicesRadGrid.SelectedItems.Count);
else
NotificationText.Text =
"fail"
}
else
{
if
(bsent)
{
GridDataItem gdi = (GridDataItem)DevicesRadGrid.SelectedItems[0];
NotificationText.Text = String.Format(
"sent to {0}, gdi["
Client"].Text);
}
else
NotificationText.Text =
"fail"
;
}
NotificationWindow.Title = strTitle;
NotificationWindow.Visible =
true
;
NotificationWindow.VisibleOnPageLoad =
true
;
NotificationWindow.VisibleTitlebar =
true
;
NotificationWindow.TitleIcon = ResolveUrl(
"~/Images/status/statusInfo.png"
);
}
<
telerik:RadNotification
ID
=
"NotificationWindow"
VisibleOnPageLoad
=
"false"
Visible
=
"false"
Position
=
"TopCenter"
KeepOnMouseOver
=
"true"
runat
=
"server"
ShowCloseButton
=
"true"
AutoCloseDelay
=
"5000"
TitleIcon
=
"~/Images/status/statusInfo.png"
Width
=
"300px"
>
<
NotificationMenu
Visible
=
"false"
></
NotificationMenu
>
<
ContentTemplate
>
<
asp:Label
runat
=
"server"
Text
=
"This is some display text"
ID
=
"NotificationText"
></
asp:Label
>
</
ContentTemplate
>
</
telerik:RadNotification
>