The confirm window feature has worked as required for us at the master level of the radgrid. We, were successfully able to set custom radwindow title and confirmation text in the ItemCreated method. However, the radwindow’s title doesn’t seem to appear in the child record even though it has been set in the ItemCreated method. Please see attached code. I am not sure if this is a bug or code implementation issue.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ConfirmationLocalized._Default" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<!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"> |
<div> |
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
<Scripts> |
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> |
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> |
<asp:ScriptReference Path="~/jquery-telerik.js" /> |
</Scripts> |
</telerik:RadScriptManager> |
<telerik:RadGrid ID="dtgShipper" runat="server" AutoGenerateColumns="False" GridLines="None" |
OnDetailTableDataBind="dtgShipper_DetailTableDataBind" OnNeedDataSource="dtgShipper_NeedDataSource" |
OnItemCommand="dtgShipper_ItemCommand" OnItemCreated="dtgShipper_ItemCreated"> |
<HeaderContextMenu> |
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
</HeaderContextMenu> |
<MasterTableView AllowPaging="True" DataKeyNames="id" PageSize="5" ShowHeader="False"> |
<DetailTables> |
<telerik:GridTableView runat="server" AllowPaging="True" PageSize="5" AutoGenerateColumns="False" |
ShowHeader="False"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn DataField="carriername" UniqueName="column1" ItemStyle-Width="85%"> |
<ItemStyle Width="85%"></ItemStyle> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="pieces" UniqueName="column2" ItemStyle-Width="85%"> |
<ItemStyle Width="85%"></ItemStyle> |
</telerik:GridBoundColumn> |
<telerik:GridButtonColumn CommandArgument="Child" ConfirmDialogType="RadWindow" ButtonType="ImageButton" |
ItemStyle-Width="20" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn" |
ConfirmText="Delete this record?" ConfirmTitle="Delete Confirm" ImageUrl="App_Themes/TEST/Images/delete.png"> |
<ItemStyle Width="20px"></ItemStyle> |
</telerik:GridButtonColumn> |
</Columns> |
</telerik:GridTableView> |
</DetailTables> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn Visible="True"> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn DataField="shippername" UniqueName="column1"> |
</telerik:GridBoundColumn> |
<telerik:GridButtonColumn CommandArgument="Child" ConfirmDialogType="RadWindow" ButtonType="ImageButton" |
ItemStyle-Width="20" CommandName="Delete" Text="Delete" UniqueName="DeleteColumnMaster" |
ConfirmText="Delete this shipper record?" ConfirmTitle="Delete Confirm" ImageUrl="App_Themes/TEST/Images/delete.png"> |
<ItemStyle Width="20px"></ItemStyle> |
</telerik:GridButtonColumn> |
</Columns> |
<PagerStyle Mode="NumericPages" /> |
</MasterTableView> |
<FilterMenu EnableTheming="True"> |
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
</FilterMenu> |
</telerik:RadGrid> |
</div> |
<telerik:RadWindowManager ID="RadWindowManager1" runat="server"> |
</telerik:RadWindowManager> |
</form> |
</body> |
</html> |
using System; |
using System.Collections.Generic; |
using System.Linq; |
using System.Web; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using System.Data; |
using System.Data.Linq; |
using System.Data.Linq.Mapping; |
using System.Linq.Expressions; |
using Telerik.Web.UI; |
namespace ConfirmationLocalized |
{ |
public partial class _Default : System.Web.UI.Page |
{ |
/// <summary> |
/// Set page theme |
/// </summary> |
/// <param name="sender"></param> |
/// <param name="e"></param> |
void Page_PreInit(object sender, EventArgs e) |
{ |
this.Page.Theme = "TEST"; |
} |
protected void Page_Load(object sender, EventArgs e) |
{ |
} |
/// <summary> |
/// Return shipper resultset |
/// </summary> |
/// <returns></returns> |
private List<Table1> LoadShippers() |
{ |
List<Table1> shipperResult = new List<Table1>(); |
Table1 shipper = new Table1(); |
shipper.ID = 1; |
shipper.ShipperName = "ABC inc."; |
shipperResult.Add(shipper); |
shipper = new Table1(); |
shipper.ID = 2; |
shipper.ShipperName = "ABC2 inc."; |
shipperResult.Add(shipper); |
return shipperResult; |
} |
/// <summary> |
/// Returns pending shipment result set |
/// </summary> |
/// <returns></returns> |
private List<Table2> LoadPendingData() |
{ |
List<Table2> listResult = new List<Table2>(); |
Table2 itemResult = new Table2(); |
itemResult.carrierkey = 1; |
itemResult.carriername = "A"; |
itemResult.pieces = 11; |
listResult.Add(itemResult); |
itemResult = new Table2(); |
itemResult.carrierkey = 2; |
itemResult.carriername = "AA"; |
itemResult.pieces = 22; |
listResult.Add(itemResult); |
itemResult = new Table2(); |
itemResult.carrierkey = 3; |
itemResult.carriername = "BAC"; |
itemResult.pieces = 33; |
listResult.Add(itemResult); |
return listResult; |
} |
/// <summary> |
/// Loads shipper result set to grid |
/// </summary> |
/// <param name="source"></param> |
/// <param name="e"></param> |
protected void dtgShipper_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
{ |
this.dtgShipper.DataSource = this.LoadShippers(); |
} |
/// <summary> |
/// Loads child records for each shipper |
/// </summary> |
/// <param name="source"></param> |
/// <param name="e"></param> |
protected void dtgShipper_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) |
{ |
GridDataItem parentItem = e.DetailTableView.ParentItem as GridDataItem; |
e.DetailTableView.DataSource = this.LoadPendingData(); |
e.DetailTableView.DataMember = "Child"; |
} |
protected void dtgShipper_ItemCommand(object source, GridCommandEventArgs e) |
{ |
} |
/// <summary> |
/// Set custom confirm message and title |
/// this could be used to set localized strings |
/// </summary> |
/// <param name="sender"></param> |
/// <param name="e"></param> |
protected void dtgShipper_ItemCreated(object sender, GridItemEventArgs e) |
{ |
// Set Parent records custom message and title |
foreach (GridColumn column in this.dtgShipper.MasterTableView.RenderColumns) |
{ |
if (column is GridButtonColumn) |
{ |
if (column.UniqueName == "DeleteColumnMaster") |
{ |
(column as GridButtonColumn).ConfirmText = "Delete this master record?"; |
// Following title appears on the radwinow |
(column as GridButtonColumn).ConfirmTitle = "Delete master confirm"; |
} |
} |
} |
// Set chil records custom message and title |
foreach (GridColumn column in this.dtgShipper.MasterTableView.DetailTables[0].RenderColumns) |
{ |
if (column is GridButtonColumn) |
{ |
if (column.UniqueName == "DeleteColumn") |
{ |
(column as GridButtonColumn).ConfirmText = "Delete this child record?"; |
//Following title doesnt appear on the rad window |
(column as GridButtonColumn).ConfirmTitle = "Delete child confirm"; |
} |
} |
} |
} |
} |
/// <summary> |
/// shipper table |
/// </summary> |
[Table(Name = "dbo.Table1")] |
public partial class Table1 |
{ |
private int _id; |
private string _shipperName; |
public int ID { |
get{return this._id ;} |
set { this._id = value; } |
} |
public string ShipperName { |
get { return this._shipperName; } |
set { this._shipperName = value; } |
} |
} |
/// <summary> |
/// Pending shipment table |
/// </summary> |
[Table(Name = "dbo.Table2")] |
public partial class Table2 |
{ |
private string _carriername; |
private System.Nullable<int> _pieces; |
private System.Nullable<double> _weight; |
private int _carrierkey; |
private string _unitid; |
private System.Nullable<int> _shipperkey; |
private System.Nullable<int> _companykey; |
public Table2() |
{ |
} |
[Column(Storage = "_carriername", DbType = "NVarChar(50)")] |
public string carriername |
{ |
get |
{ |
return this._carriername; |
} |
set |
{ |
if ((this._carriername != value)) |
{ |
this._carriername = value; |
} |
} |
} |
[Column(Storage = "_pieces", DbType = "Int")] |
public System.Nullable<int> pieces |
{ |
get |
{ |
return this._pieces; |
} |
set |
{ |
if ((this._pieces != value)) |
{ |
this._pieces = value; |
} |
} |
} |
[Column(Storage = "_weight", DbType = "Float")] |
public System.Nullable<double> weight |
{ |
get |
{ |
return this._weight; |
} |
set |
{ |
if ((this._weight != value)) |
{ |
this._weight = value; |
} |
} |
} |
[Column(Storage = "_carrierkey", DbType = "Int NOT NULL")] |
public int carrierkey |
{ |
get |
{ |
return this._carrierkey; |
} |
set |
{ |
if ((this._carrierkey != value)) |
{ |
this._carrierkey = value; |
} |
} |
} |
[Column(Storage = "_unitid", DbType = "VarChar(25)")] |
public string unitid |
{ |
get |
{ |
return this._unitid; |
} |
set |
{ |
if ((this._unitid != value)) |
{ |
this._unitid = value; |
} |
} |
} |
[Column(Storage = "_shipperkey", DbType = "Int")] |
public System.Nullable<int> shipperkey |
{ |
get |
{ |
return this._shipperkey; |
} |
set |
{ |
if ((this._shipperkey != value)) |
{ |
this._shipperkey = value; |
} |
} |
} |
[Column(Storage = "_companykey", DbType = "Int")] |
public System.Nullable<int> companykey |
{ |
get |
{ |
return this._companykey; |
} |
set |
{ |
if ((this._companykey != value)) |
{ |
this._companykey = value; |
} |
} |
} |
} |
} |