Hi All,
I am facing a problem related to response.BinaryWrite(), it is not working on telerik:RadPageView.
My code is as below.
ASPX:
Javascript:
CS:
I am facing a problem related to response.BinaryWrite(), it is not working on telerik:RadPageView.
My code is as below.
ASPX:
<
telerik:RadPageView
ID
=
"vXML"
runat
=
"server"
CssClass
=
"edit-area"
>
<
div
class
=
"padded-container"
>
<
asp:LinkButton
runat
=
"server"
EnableViewState
=
"false"
class
=
"padded-element-first"
OnClientClick
=
"clientButtonClicking();"
Text
=
"Download"
CommandName
=
"XML"
CausesValidation
=
"true"
ID
=
"btnExportXML"
OnCommand
=
"btnExport_Click"
/>
<
label
id
=
"btnImportXML"
class
=
"padded-element-last"
style="cursor: pointer; color: #0E3D4F;
text-decoration: underline; display: inline"
onclick
=
'toogleDisplays("btnImportXML","divUpldXML"); return false;'
>
Upload</
label
>
<
div
id
=
"divUpldXML"
style
=
"visibility: hidden; display: inline"
>
<
asp:FileUpload
CssClass
=
"padded-element-last"
EnableViewState
=
"false"
runat
=
"server"
ID
=
"upldXML"
/>
<
asp:RequiredFieldValidator
ValidationGroup
=
"grpInputs"
ID
=
"vldUpldXml"
ControlToValidate
=
"upldXML"
runat
=
"server"
ErrorMessage
=
"PlaceholderXML is required. Enter valid PlaceholderXML."
Text
=
"*"
/>
<
asp:RegularExpressionValidator
ValidationGroup
=
"grpInputs"
Enabled
=
"false"
ID
=
"vldRegExpUpldXml"
runat
=
"server"
ErrorMessage
=
".xml extension only"
ValidationExpression
=
"^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.xml|.XML)$"
ControlToValidate
=
"upldXML"
/>
</
div
>
</
div
>
<
tzgcontrols:XmlView
Style
=
"width: 97%; overflow: scroll; clip: auto; word-wrap: break-word;"
EnableViewState
=
"true"
ID
=
"ViewerXML"
runat
=
"server"
CssClass
=
"XmlFormat placeholder-box"
/>
</
telerik:RadPageView
>
Javascript:
<telerik:RadCodeBlock ID=
"RadCodeBlock1"
runat=
"server"
>
<script type=
"text/javascript"
>
RadAjax.OnStart(
{
btnExportXML: doNotUseAjax,
btnExportXSLT: doNotUseAjax,
btnExportXSD: doNotUseAjax
});
var
cancelAjax =
false
;
function
clientButtonClicking(sender, eventArgs) {
debugger;
if
(eventArgs.get_item().get_value() ==
"postback"
) {
cancelAjax =
true
;
}
}
function
onRequestStart(ajaxManager, eventArgs)
{
alert(cancelAjax);
alert(eventArgs.EventTarget);
if
((eventArgs.EventTarget ==
"btnExportXML"
) && (cancelAjax)) { alert(
'TEST'
); eventArgs.EnableAjax =
false
; }
if
((eventArgs.EventTarget ==
"btnExportXSD"
) && (cancelAjax)) { eventArgs.EnableAjax =
false
; }
//Uncomment the line below in case of a file download.
cancelAjax =
false
;
}
</script>
</telerik:RadCodeBlock>
CS:
public
static
void
DownloadFile(HttpResponse response, Constants.DownloadFileType type,
string
fileName,
byte
[] data)
{
using
(var trace =
new
TraceManager(
"Default"
))
{
try
{
response.Clear();
response.Buffer =
true
;
byte
[] storage = data;
switch
(type)
{
case
Constants.DownloadFileType.XML:
//document is xml
response.ContentType =
"application/xml"
;
response.AddHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName +
".xml"
);
break
;
case
Constants.DownloadFileType.XSLT:
//document is xslt
response.ContentType =
"application/xml"
;
response.AddHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName +
".xslt"
);
break
;
case
Constants.DownloadFileType.XSD:
//document is xslt
response.ContentType =
"application/xml"
;
response.AddHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName +
".xsd"
);
break
;
case
Constants.DownloadFileType.DOCX:
response.ContentType =
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
;
response.AddHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName +
".docx"
);
break
;
case
Constants.DownloadFileType.EMAIL:
//document is email
response.ContentType =
"text/html"
;
response.AddHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName +
".html"
);
break
;
default
:
//throw new Exception("Unknown Placeholder type specified.");
break
;
}
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.BinaryWrite(storage);
//response.End();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
catch
(Exception ex)
{
trace.HandleException(ex);
}
}
}
Please help to resolve this issue.