or
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="test.ascx.cs" Inherits="_Controls_test" %>
<
asp:Button
ID
=
"btnText"
runat
=
"server"
Text
=
"test"
OnClick
=
"btnTest_Click"
/>
protected
void
btnTest_Click(
object
sender, EventArgs e)
{
CommandEventArgs args =
new
CommandEventArgs(
"TestEvent"
,
"bubbled up!"
);
RaiseBubbleEvent(
null
, args);
}
<
telerik:RadScriptManager
ID
=
"ScriptManager1"
runat
=
"server"
/>
<
telerik:RadAjaxPanel
ID
=
"UpdatePanel1"
runat
=
"server"
LoadingPanelID
=
"UpdateProgress1"
>
This is a test page:<
br
/>
<
asp:Literal
ID
=
"litTest"
runat
=
"server"
/>
<
br
/><
br
/><
br
/>
<
uc1:testUC
ID
=
"testUC1"
runat
=
"server"
/>
</
telerik:RadAjaxPanel
>
<
telerik:RadAjaxLoadingPanel
ID
=
"UpdateProgress1"
runat
=
"server"
/>
protected
override
bool
OnBubbleEvent(
object
source, EventArgs args)
{
if
(args !=
null
)
{
CommandEventArgs e = (CommandEventArgs)args;
if
(e.CommandArgument !=
null
)
{
litTest.Text += e.CommandName +
" = "
+ e.CommandArgument.ToString() +
"<br />"
;
return
true
;
}
}
return
false
;
}
<
asp:UpdatePanel
ID
=
"updatePanel"
ClientIDMode
=
"Static"
runat
=
"server"
>
<
ContentTemplate
>
<
telerik:RadGrid
ID
=
"rgDocuments"
runat
=
"server"
Width
=
"100%"
ShowStatusBar
=
"False"
AutoGenerateColumns
=
"False"
AllowSorting
=
"False"
AllowMultiRowSelection
=
"False"
AllowPaging
=
"False"
Skin
=
"EACS"
EnableEmbeddedSkins
=
"false"
OnDetailTableDataBind
=
"rgDocuments_DetailTableDataBind"
OnNeedDataSource
=
"rgDocuments_NeedDataSource"
OnPreRender
=
"rgDocuments_PreRender"
>
<
MasterTableView
Width
=
"100%"
DataKeyNames
=
"DOCUMENT_AUTHOR_ID"
AllowMultiColumnSorting
=
"True"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"DOCUMENT_AUTHOR_ID,DOCUMENT_AUTHOR_CATEGORY_ID"
Name
=
"Categories"
Width
=
"100%"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"DOCUMENT_ID,PARENT_DOCUMENT_ID"
Name
=
"ParentDocuments"
Width
=
"100%"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"DOCUMENT_ID,FILENAME,TITLE"
Name
=
"Documents"
Width
=
"100%"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DOCUMENT_ID"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FILENAME"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Section Title"
>
<
ItemTemplate
>
<
asp:LinkButton
ID
=
"btnDocument"
runat
=
"server"
OnClick
=
"btnDocument_Click"
Text='<%# Eval("Title") %>'></
asp:LinkButton
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DOCUMENT_ID"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Document Title"
DataField
=
"TITLE"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DOCUMENT_AUTHOR_CATEGORY_ID"
Display
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Category"
DataField
=
"DISPLAY_VALUE"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"DOCUMENT_AUTHOR_ID"
Visible
=
"false"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Author Name"
DataField
=
"DISPLAY_VALUE"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
asp:UpdatePanel
>
protected
void
btnDocument_Click(
object
sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
GridDataItem item = (GridDataItem)lb.NamingContainer;
if
(item !=
null
)
{
string
documentUploadPath = ConfigurationManager.AppSettings[
"DocumentUploadPath"
].ToString();
string
filename = documentUploadPath + item.GetDataKeyValue(
"FILENAME"
).ToString();
string
title = documentUploadPath + item.GetDataKeyValue(
"TITLE"
).ToString();
if
(File.Exists(Server.MapPath(filename)))
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
byte
[] bytes = File.ReadAllBytes(Server.MapPath(filename));
response.Clear();
response.AddHeader(
"Content-Type"
,
"binary/octet-stream"
);
response.AddHeader(
"Content-Disposition"
,
"attachment; filename="
+ title +
".pdf;"
);
response.Flush();
response.BinaryWrite(bytes);
response.Flush();
response.End();
}
}
}