or
<%@ Register TagPrefix="telerik" Namespace="Telerik.QuickStart" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.WebControls" Assembly="RadAjax.NET2" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.WebControls" Assembly="RadGrid.NET2" %>
<
tr
>
<
td
class
=
"text-bold"
align
=
"right"
colspan
=
"2"
>
<
br
/>
<
asp:LinkButton
ID
=
"lnkExcelExportMaster"
runat
=
"server"
Text
=
"Export to Excel (Master Data)"
ToolTip
=
"Export to Excel (Master Data)"
OnClick
=
"lnkExcelMaster_OnClick"
Font-Underline
=
"true"
></
asp:LinkButton
>
<
asp:LinkButton
ID
=
"lnkExcelExport"
runat
=
"server"
Text
=
"Export to Excel"
ToolTip
=
"Export to Excel"
OnClick
=
"lnkExcel_OnClick"
Font-Underline
=
"true"
></
asp:LinkButton
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"grdAccomodationDetails"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"grdAccomodationDetails"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadGrid
ID
=
"grdAccomodationDetails"
runat
=
"server"
Skin
=
"Web20"
Width
=
"95%"
ShowStatusBar
=
"true"
AutoGenerateColumns
=
"False"
PageSize
=
"30"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"False"
AllowPaging
=
"True"
OnDetailTableDataBind
=
"grdAccomodationDetails_DetailTableDataBind"
OnNeedDataSource
=
"grdAccomodationDetails_NeedDataSource"
OnItemCreated
=
"grdAccomodationDetails_ItemCreated"
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
></
PagerStyle
>
<
MasterTableView
Width
=
"100%"
DataKeyNames
=
"AccomodationId"
AllowMultiColumnSorting
=
"True"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"AccomodationDetailsId"
Name
=
"InnerAccomodationDetails"
Width
=
"80%"
AutoGenerateColumns
=
"false"
>
<
Columns
>
<
telerik:GridBoundColumn
SortExpression
=
"Name"
HeaderText
=
"Full Name"
HeaderButtonType
=
"TextButton"
DataField
=
"Name"
ItemStyle-Width
=
"25%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"RegistrationNumber"
HeaderText
=
"Registration Number"
HeaderButtonType
=
"TextButton"
DataField
=
"RegistrationNumber"
ItemStyle-Width
=
"15%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Sex"
HeaderText
=
"Sex"
HeaderButtonType
=
"TextButton"
DataField
=
"Sex"
ItemStyle-Width
=
"5%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Age"
HeaderText
=
"Age"
HeaderButtonType
=
"TextButton"
DataField
=
"Age"
ItemStyle-Width
=
"5%"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
SortExpression
=
"AccomodationId"
HeaderText
=
"Accomodation Id"
HeaderButtonType
=
"TextButton"
DataField
=
"AccomodationId"
ItemStyle-Width
=
"15%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"FirstName"
HeaderText
=
"First Name"
HeaderButtonType
=
"TextButton"
DataField
=
"FirstName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"MiddleName"
HeaderText
=
"Middle Name"
HeaderButtonType
=
"TextButton"
DataField
=
"MiddleName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"LastName"
HeaderText
=
"Last Name"
HeaderButtonType
=
"TextButton"
DataField
=
"LastName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"MobileNumber"
HeaderText
=
"Mobile Number"
HeaderButtonType
=
"TextButton"
DataField
=
"MobileNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"CountofPeople"
HeaderText
=
"Total Count"
HeaderButtonType
=
"TextButton"
DataField
=
"CountofPeople"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Address"
HeaderText
=
"Address"
HeaderButtonType
=
"TextButton"
DataField
=
"Address"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"ResidenceNumber"
HeaderText
=
"Residence Number"
HeaderButtonType
=
"TextButton"
DataField
=
"ResidenceNumber"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"EmailAddress"
HeaderText
=
"Email Address"
HeaderButtonType
=
"TextButton"
DataField
=
"EmailAddress"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Visible
=
"false"
HeaderText
=
"Arrival Date"
HeaderButtonType
=
"TextButton"
HeaderStyle-HorizontalAlign
=
"Center"
DataField
=
"ArrivalDate"
DataFormatString
=
"{0:MMM dd, yyyy}"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Visible
=
"false"
HeaderText
=
"Departure Date"
HeaderButtonType
=
"TextButton"
HeaderStyle-HorizontalAlign
=
"Center"
DataField
=
"DepartureDate"
DataFormatString
=
"{0:MMM dd, yyyy}"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
ReorderColumnsOnClient
=
"True"
AllowDragToGroup
=
"True"
AllowColumnsReorder
=
"True"
>
<
Selecting
AllowRowSelect
=
"true"
/>
<
Resizing
AllowRowResize
=
"False"
AllowColumnResize
=
"True"
></
Resizing
>
</
ClientSettings
>
</
telerik:RadGrid
>
<
br
/>
</
td
>
</
tr
>
#region ===== NeedDataSource Event of Grid =====
protected
void
grdAccomodationDetails_NeedDataSource(
object
source, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
try
{
if
(!e.IsFromDetailTable)
{
grdAccomodationDetails.DataSource = megautsav.GetMegaUtsavAccomodations();
}
}
catch
(Exception ex)
{
LogHandler.LogError(
long
.Parse(Session[
"UserId"
].ToString()), LogHandler.APPLICATION_ERROR, ex.StackTrace.ToString(), ex.Message.ToString());
Response.Redirect(
"../Error.aspx?errmsg="
+ HttpUtility.UrlEncode(ex.Message.ToString()));
}
}
#endregion
#region ===== Binding Detail Tables of Grid =====
protected
void
grdAccomodationDetails_DetailTableDataBind(
object
source, Telerik.WebControls.GridDetailTableDataBindEventArgs e)
{
try
{
Telerik.WebControls.GridDataItem dataItem = (Telerik.WebControls.GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"InnerAccomodationDetails"
:
{
string
accomodationId = dataItem.GetDataKeyValue(
"AccomodationId"
).ToString();
e.DetailTableView.DataSource = megautsav.GetMegaUtsavAccomodationDetails(
int
.Parse(accomodationId));
break
;
}
}
}
catch
(Exception ex)
{
LogHandler.LogError(
long
.Parse(Session[
"UserId"
].ToString()), LogHandler.APPLICATION_ERROR, ex.StackTrace.ToString(), ex.Message.ToString());
Response.Redirect(
"../Error.aspx?errmsg="
+ HttpUtility.UrlEncode(ex.Message.ToString()));
}
}
#endregion
#region ===== ItemCreated Event of Grid =====
protected
void
grdAccomodationDetails_ItemCreated(
object
source, Telerik.WebControls.GridItemEventArgs e)
{
if
(isExport && (e.Item.ItemType == Telerik.WebControls.GridItemType.Item || e.Item.ItemType == Telerik.WebControls.GridItemType.AlternatingItem || e.Item.ItemType == Telerik.WebControls.GridItemType.Header))
{
e.Item.Cells[0].Visible =
false
;
}
}
#endregion
#region ===== Click of Export to Excel Linkbutton =====
protected
void
lnkExcel_OnClick(
object
sender, EventArgs e)
{
try
{
isExport =
true
;
grdAccomodationDetails.ExportSettings.ExportOnlyData =
true
;
grdAccomodationDetails.ExportSettings.OpenInNewWindow =
true
;
string
fileName =
"MegaMahotsav Accomodation Details"
;
grdAccomodationDetails.ExportSettings.FileName = fileName;
grdAccomodationDetails.MasterTableView.Width = Unit.Pixel(300);
grdAccomodationDetails.MasterTableView.CommandItemDisplay = Telerik.WebControls.GridCommandItemDisplay.None;
grdAccomodationDetails.MasterTableView.ShowFooter =
false
;
grdAccomodationDetails.MasterTableView.ClearEditItems();
grdAccomodationDetails.MasterTableView.ClearSelectedItems();
grdAccomodationDetails.MasterTableView.HierarchyDefaultExpanded =
true
;
grdAccomodationDetails.MasterTableView.AllowPaging =
false
;
foreach
(Telerik.WebControls.GridBoundColumn column
in
grdAccomodationDetails.MasterTableView.Columns)
{
column.Visible =
true
;
}
grdAccomodationDetails.Rebind();
grdAccomodationDetails.GridLines = GridLines.Both;
grdAccomodationDetails.MasterTableView.ExportToExcel();
grdAccomodationDetails.MasterTableView.AllowPaging =
true
;
}
catch
(Exception ex)
{
throw
(ex);
}
}
#endregion
#region ===== Click of Export to Excel (Master Data) Linkbutton =====
protected
void
lnkExcelMaster_OnClick(
object
sender, EventArgs e)
{
try
{
isExport =
true
;
grdAccomodationDetails.ExportSettings.ExportOnlyData =
true
;
grdAccomodationDetails.ExportSettings.OpenInNewWindow =
true
;
string
fileName =
"MegaMahotsav Accomodation Details Master"
;
grdAccomodationDetails.ExportSettings.FileName = fileName;
grdAccomodationDetails.MasterTableView.Width = Unit.Pixel(300);
grdAccomodationDetails.MasterTableView.CommandItemDisplay = Telerik.WebControls.GridCommandItemDisplay.None;
grdAccomodationDetails.MasterTableView.ShowFooter =
false
;
grdAccomodationDetails.MasterTableView.ClearEditItems();
grdAccomodationDetails.MasterTableView.ClearSelectedItems();
grdAccomodationDetails.MasterTableView.HierarchyDefaultExpanded =
false
;
grdAccomodationDetails.MasterTableView.AllowPaging =
false
;
foreach
(Telerik.WebControls.GridBoundColumn column
in
grdAccomodationDetails.MasterTableView.Columns)
{
column.Visible =
true
;
}
grdAccomodationDetails.Rebind();
grdAccomodationDetails.GridLines = GridLines.Both;
grdAccomodationDetails.MasterTableView.ExportToExcel();
grdAccomodationDetails.MasterTableView.AllowPaging =
true
;
}
catch
(Exception ex)
{
throw
(ex);
}
}
#endregion
RadComboBox1.DataSource = Context.GetItems()
sch = from h
in
Context.LktSchoolYearOutcomesENT
where !h.Deleted
orderby h.LkSchoolYearOutcomeENT.SchoolYearOutcome ascending
select
new
NameValuePair
{
Name = h.LkSchoolYearOutcomeENT.SchoolYearOutcome,
Value = h.LkSchoolYearOutcomeENT.OutcomeId
};
<
head
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"../../App_Themes/GuSkin/GU.css"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"../../App_Themes/GuSkin/GUIE.css"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"../../App_Themes/GuSkin/guPrestation.css"
>
<
title
>Title</
title
>
<
meta
content
=
"no-cache"
http-equiv
=
"Pragma"
>
<
meta
content
=
"-1"
http-equiv
=
"Expires"
>
<
meta
content
=
"text/html; charset=ISO-8859-1"
http-equiv
=
"Content-Type"
>
<
style
type
=
"text/css"
>
/* FIX FOR IE 8 Font inconsistency*/
.RadForm .riTextBox
{
font-family: "Segoe UI", Arial, Helvetica, sans-serif !important;
}
</
style
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"/mysite/Telerik.Web.UI.WebResource.axd?compress=1&_TSM_CombinedScripts_=%3b%3bGuTelerikSkins%3afr-CH%3aebb84cb8-7274-41c6-ae46-f01325da7dfd%3a342f89e1%3ab5feda7d%3ac6c2ea7f%3a13647808%3a696827c7%3bTelerik.Web.UI%2c+Version%3d2010.2.713.40%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3afr-CH%3a1814ab69-dbf3-46be-b5e4-1b4e7d85f183%3aef4a543%3aed2942d4%3aaac1aeb7%3ac73cf106%3ac86a4a06%3a4c651af2%3a1c2121e%3ae24b8e95%3a9e1572d6%3a8cee9284%3aed057d30%3aa3b7d93f%3ab2b77c33%3a5c10e89c%3a4d471440%3a169db17e%3a1f65231b%3a7f7626a2%3a92753c09%3a91f742eb"
>
</
head
>
Quick question - What's the best way to access a control in a nested GridTableView (specifically lblPassword below) in the code behind? The password is encrypted in the database and I need to decrypt before displaying on the web page.
<
telerik:RadGrid
runat
=
"server"
ID
=
"gridDatabases"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
Skin
=
"Windows7"
Width
=
"100%"
DataSourceID
=
"LinqDataSourceDatabases"
OnItemDataBound
=
"gridDatabases_ItemDataBound"
>
<
MasterTableView
DataSourceID
=
"LinqDataSourceDatabases"
DataKeyNames
=
"ID"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"ID"
DataSourceID
=
"LinqDataSourceUsers"
runat
=
"server"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"ID"
MasterKeyField
=
"DatabaseDetailID"
/>
</
ParentTableRelation
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"UserName"
HeaderText
=
"User Name"
SortExpression
=
"UserName"
UniqueName
=
"UserName"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Password"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblPassword"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
ExpandCollapseColumn
Visible
=
"True"
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DatabaseName"
HeaderText
=
"Database"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
I thought I could use the OnItemDatabound event, like this, but I can't seem call FindControl to drill down to get to the nested label control. This is basically what I'm trying to accomplish, and this would work if the control wasn't in a nested table.
protected
void
gridUserDetails_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
{
GridDataItem gridItem = (GridDataItem)e.Item;
UserDetail userDetail = (UserDetail)gridItem.DataItem;
Label lblPassword = (Label)gridItem.FindControl(
"lblPassword"
);
string
decryptedPassword = DecryptPassword(userDetail.Password);
lblPassword.Text = decryptedPassword;
}
}
<
script
type
=
"text/javascript"
>
Telerik.Web.UI.RadAsyncUpload.Modules.Flash.isAvailable = function() { return false; }
</
script
>
<
telerik:RadAsyncUpload
runat
=
"server"
ID
=
"rauResume"
Skin
=
"Office2007"
ReadOnlyFileInputs
=
"true"
MultipleFileSelection
=
"Disabled"
MaxFileInputsCount
=
"1"
MaxFileSize
=
"409"
>
</
telerik:RadAsyncUpload
>