I am receiving an error message when trying to upload files via the RadAsyncUpload. It is strange because it doesn't seem to happen all the time, and I haven't been able to pinpoint exactly when it happens.
The way that I have this setup is that I have a user control called DocumentRepository. The control is in a RadWindow which is opened by clicking on a LinkButton in the aspx page. Inside that control, I can click on a button which opens another RadWindow allowing the user to browse for and upload a file. That uses RadAjaxUpload.
So to start, I have my aspx page:
aspx.cs:
Inside the user control adaacDocumentRepository:
ascx.cs file:
The json request that is being generated that is causing the error is:
When I run it through a validator, it appears as though it is the first part that is causing the error, since isEnabled and uploadedFiles is in single quotes instead of double quotes, and the 'true' needs to be either a Boolean, or a string in double quotes....
Any ideas as to how I can fix this? I can't seem to find anybody else that is having this problem.....
I have not been able to recreate this, but it is definitely happening as I can see the error messages coming in pretty regularly. Why are those values coming in with single quotes? What is causing it? Do I need to hack it somehow or is there a fix?
It is definitely the posted value from the RadAsyncUpload control:
ctl00_ctl00_PageContent_PageContent2_windowDocumentRepository_C_adaacDocumentRepository_windowAddDocument_C_fileUpload1_ClientState:{'isEnabled':'true','uploadedFiles':[{"fileInfo":{"FileName":"Footer Graphic.png","ContentType":"image/png","ContentLength":18389,"Index":0},"metaData":"/wEFwwF7IlRlbXBGaWxlTmFtZSI6IjEzNTU4NzU4MzI1NjFGb290ZXIgR3JhcGhpYy5wbmciLCJBc3luY1VwbG9hZFR5cGVOYW1lIjoiVGVsZXJpay5XZWIuVUkuVXBsb2FkZWRGaWxlSW5mbywgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMi4yLjkxMi4zNSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0In0NCNiTh2r8IZeBu1RIF0/Xu3qk/w=="}]},
Thanks in advance!!!
The way that I have this setup is that I have a user control called DocumentRepository. The control is in a RadWindow which is opened by clicking on a LinkButton in the aspx page. Inside that control, I can click on a button which opens another RadWindow allowing the user to browse for and upload a file. That uses RadAjaxUpload.
So to start, I have my aspx page:
<%@ Register Src="~/secured/IntakeRequest/ascx/DocumentRepository.ascx" TagName="DocumentRepository" TagPrefix="ADAAC" %>
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"RadScriptManager1"
/>
<
telerik:RadFormDecorator
ID
=
"radFormDecorator"
runat
=
"server"
DecoratedControls
=
"All"
Skin
=
"Office2010Silver"
EnableRoundedCorners
=
"false"
/>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"radAjaxManager1"
OnAjaxRequest
=
"radAjaxManager1_AjaxRequest"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"radAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"adaacDocumentRepository"
UpdatePanelRenderMode
=
"Inline"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadScriptBlock
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function windowCommunicationLog_OnClientBeforeShow(sender, args) {
var ajaxManager = $find("<%= radAjaxManager1.ClientID %>");
ajaxManager.ajaxRequest("windowCommunicationLog_OnClientBeforeShow");
}
</
script
>
</
telerik:RadScriptBlock
>
<
telerik:RadWindow
runat
=
"server"
ID
=
"windowDocumentRepository"
Title
=
"Document Repository"
Width
=
"1024"
Height
=
"700"
VisibleOnPageLoad
=
"false"
Behaviors
=
"Close, Move"
EnableShadow
=
"true"
Modal
=
"true"
DestroyOnClose
=
"false"
OnClientBeforeShow
=
"windowDocumentRepository_OnClientBeforeShow"
>
<
ContentTemplate
>
<
ADAAC:DocumentRepository
runat
=
"server"
ID
=
"adaacDocumentRepository"
/>
</
ContentTemplate
>
</
telerik:RadWindow
>
aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
windowDocumentRepository.OpenerElementID = btnImportDocument.ClientID;
}
protected
void
radAjaxManager1_AjaxRequest(
object
sender, AjaxRequestEventArgs e)
{
if
(e.Argument ==
"windowDocumentRepository_OnClientBeforeShow"
)
{
// the only thing this does is bind a repeater with a list of documents already uploaded
adaacDocumentRepository.BindDocuments();
}
}
Inside the user control adaacDocumentRepository:
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel2"
Skin
=
"Metro"
BackgroundPosition
=
"Center"
Direction
=
"LeftToRight"
EnableSkinTransparency
=
"false"
></
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxManagerProxy
runat
=
"server"
ID
=
"radAjaxManagerProxy1"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnUploadFile"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnUploadFile"
LoadingPanelID
=
"RadAjaxLoadingPanel2"
UpdatePanelRenderMode
=
"Inline"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadWindow
runat
=
"server"
ID
=
"windowAddDocument"
Title
=
"Import a Document"
Width
=
"800"
Height
=
"250"
VisibleOnPageLoad
=
"false"
Behaviors
=
"Close, Move"
EnableShadow
=
"true"
Modal
=
"true"
IconUrl
=
"/images/windowIcon.png"
>
<
ContentTemplate
>
<
div
><
b
>Select a document to upload</
b
></
div
>
<
div
>
File:
</
div
>
<
div
>
<
telerik:RadAsyncUpload
runat
=
"server"
MaxFileInputsCount
=
"1"
ID
=
"fileUpload1"
ControlObjectsVisibility
=
"None"
Width
=
"375"
/>
</
div
>
<
div
>
<
asp:Button
runat
=
"server"
ID
=
"btnUploadFile"
OnClick
=
"btnUploadFile_OnClick"
Text
=
"Upload File"
/>
</
div
>
<
div
>
Browse for a file and then hit the "Upload" button.
</
div
>
</
ContentTemplate
>
</
telerik:RadWindow
>
<
div
>
<
asp:ImageButton
ImageUrl
=
"adddoc.jpg"
AlternateText
=
"Add a Document"
runat
=
"server"
ID
=
"btnUploadDoc"
/>
</
div
>
ascx.cs file:
protected
void
Page_Load(
object
sender, EventArgs e)
{
RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
manager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(radAjaxManager1_AjaxRequest);
if
(!IsPostBack)
{
windowAddDocument.OpenerElementID = btnUploadDoc.ClientID;
}
}
protected
void
btnUploadFile_OnClick(
object
o, EventArgs e)
{
if
(fileUpload1.UploadedFiles.Count == 1)
{
string
encFileName = Guid.NewGuid() + GetFileExtension(fileUpload1.UploadedFiles[0].FileName);
string
uploadPath = Server.MapPath(
"/documents/"
+ encFileName);
fileUpload1.UploadedFiles[0].SaveAs(uploadPath);
BindDocuments();
// this just rebinds the uploaded documents
}
}
protected
void
radAjaxManager1_AjaxRequest(
object
sender, AjaxRequestEventArgs e)
{
// this is just here so I can use radconfirm to do file deletions from the grid
}
The json request that is being generated that is causing the error is:
{
'isEnabled':'true',
'uploadedFiles':[
{
"fileInfo":{
"FileName":"Footer Graphic.png",
"ContentType":"image/png",
"ContentLength":18389,
"Index":0
},
"metaData":"/wEFwwF7IlRlbXBGaWxlTmFtZSI6IjEzNTU4NzU4MzI1NjFGb290ZXIgR3JhcGhpYy5wbmciLCJBc3luY1VwbG9hZFR5cGVOYW1lIjoiVGVsZXJpay5XZWIuVUkuVXBsb2FkZWRGaWxlSW5mbywgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMi4yLjkxMi4zNSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0In0NCNiTh2r8IZeBu1RIF0/Xu3qk/w=="
}
]
},
When I run it through a validator, it appears as though it is the first part that is causing the error, since isEnabled and uploadedFiles is in single quotes instead of double quotes, and the 'true' needs to be either a Boolean, or a string in double quotes....
Any ideas as to how I can fix this? I can't seem to find anybody else that is having this problem.....
I have not been able to recreate this, but it is definitely happening as I can see the error messages coming in pretty regularly. Why are those values coming in with single quotes? What is causing it? Do I need to hack it somehow or is there a fix?
It is definitely the posted value from the RadAsyncUpload control:
ctl00_ctl00_PageContent_PageContent2_windowDocumentRepository_C_adaacDocumentRepository_windowAddDocument_C_fileUpload1_ClientState:{'isEnabled':'true','uploadedFiles':[{"fileInfo":{"FileName":"Footer Graphic.png","ContentType":"image/png","ContentLength":18389,"Index":0},"metaData":"/wEFwwF7IlRlbXBGaWxlTmFtZSI6IjEzNTU4NzU4MzI1NjFGb290ZXIgR3JhcGhpYy5wbmciLCJBc3luY1VwbG9hZFR5cGVOYW1lIjoiVGVsZXJpay5XZWIuVUkuVXBsb2FkZWRGaWxlSW5mbywgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMi4yLjkxMi4zNSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0In0NCNiTh2r8IZeBu1RIF0/Xu3qk/w=="}]},
Thanks in advance!!!