RadASyncUpload in an updatepanel of radwindow is giving syntax error in SharePoint webpart

6 posts, 0 answers
  1. Harish
    Harish avatar
    3 posts
    Member since:
    Feb 2012

    Posted 01 Feb 2012 Link to this post

    I have telerik 2011.3.1305.35 -> Q3.
    In a sharepoint 2010 visual webpart I have a RadTreeView control, when some particular menu options are selected I want to open radwindow(s) which has an asp:updatepanel and within which I have another radtree,radgrid,repeator, RadAynscUpload (not all in same window).
    Folowing is the code I have for this requirement:
    Issues I am facing currently:
    1) Every time I click on any of these menu options the page is getting refreshed and then radwindow is getting opened, Can we avoid page refresh and just simple open radwindow?
    2) One of these RadWindows has RadAsyncUpload (for multiple file uploads), when I select the files to be uploaded I am getting a javascript error saying 'Syntax error' but I can see the file uploaded to the control then when I click on the Upload button my code says the uploadedfiles count is zero. I know there are web.config changes to be done for radupload is that the same case for RadAsyncUpload, can you please specify those?
    I have also tried asp:fileupload (even though its not multiple upload) it is uploading the documents correctly but it is closing the radwindow even though I specified trigger for the button.
    Code:



    protected
    void rtvDocuments_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
            {
      
                RadTreeNode clickedNode = e.Node;
      
                switch (e.MenuItem.Value)
                {
                   case "AddDoc":
                        LoadAllGroups(rtvGroupstoAddDocs);
                        RegisterStartupScript(RadWndwUploadDocs.ClientID);
                        break;
                    case "AddExistingGroup":
                        LoadAllGroups(rtvAllGroups); //loads all the groups
                        RegisterStartupScript(winGroupBrowse.ClientID);
                        break;
                    case "AddExistingDoc":
                        LoadAllDocuments(); //loads all docs in grid
                        RegisterStartupScript(RadWndwAllDocs.ClientID);
                        break;
                    //Other Cases here
                 }
      
    private void RegisterStartupScript(string RadControlId)
            {
                string script = string.Empty;
                script = "function f(){$find(\"" + RadControlId + "\").show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true);
            }
      
    //If files uploaded and on upload button click, submit the documents to repeator and then upload them to SP document library.
    //I tried both the control, when debugging AsyncUpload count is zero and getting "syntax error" on the page
    //FileUpload uploads succesfully but closes the radWindow, but I want the window to be showing up, If this is the only solution and if RadAsyncUpload is not helpful for me.
            protected void SubmitButton_Click(object sender, System.EventArgs e)
            {
    //If RadAsyncUpload is used.. I want this to be working because of multi uploads requirement.
                if (RadAsyncUpload1.UploadedFiles.Count > 0)
                {
      
                    labelNoResults.Visible = false;
                    Repeater1.Visible = true;
                    Repeater1.DataSource = RadAsyncUpload1.UploadedFiles;
                    Repeater1.DataBind();
      
                    List<string> lstFileNames = new List<string>();
                    foreach (UploadedFile file in RadAsyncUpload1.UploadedFiles)
                    {
                        lstFileNames.Add(file.FileName);
      
                    }
                    //AddedControl ISODocuments to SharePoint document library
                    AddDoc(lstFileNames);
      
                }
                else
                {
                    labelNoResults.Visible = true;
                    Repeater1.Visible = false;
                }
      
    //If file upload is used.
     if (FileUpload1.PostedFile != null)
                {
                    string siteUrl = SPContext.Current.Site.Url;
                    using (SPSite siteColl = new SPSite(siteUrl))
                    {
                        //Get SPWeb object representing a particular website
                        using (SPWeb webSite = siteColl.OpenWeb())
                        {
                            try
                            {
                                webSite.AllowUnsafeUpdates = true;
                                webSite.Lists.IncludeRootFolder = true;
                                //Get the document library in which documents will be uploaded
                                SPList docLibrary = webSite.Lists["UpLoadedDocuments"];
                                // objFileUpload is asp.net FileUpload Object
                                Stream FStream; string fname;
                                FStream = FileUpload1.PostedFile.InputStream;
                                int basenamestart = FileUpload1.PostedFile.FileName.LastIndexOf(@"\");
                                fname = FileUpload1.PostedFile.FileName.Substring(basenamestart + 1);
                                //Upload files into SharePoint document library
                                SPFile file = docLibrary.RootFolder.Files.Add(fname, FStream, true);
      
                                file.Update();
                            }
                            catch
                            { }
                        }
                    }
                }
      
      
            }
    <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
        Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@ Import Namespace="Microsoft.SharePoint" %>
    <%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages"
        Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ABC.ascx.cs"
        Inherits="X.Y.Z" %>
    <%@ Register Assembly="Telerik.Web.UI, Version=2011.3.1305.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4"
        Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
      
         
       <telerik:RadScriptBlock runat="Server" ID="RadScriptBlock2">
            <script type="text/javascript">
        </script>
             <script type="text/javascript" src="/_layouts/js/MyCustom.js"></script>  
        </telerik:RadScriptBlock>
      
    <telerik:RadTreeView ID="rtvDocuments" runat="server" EnableDragAndDrop="True" OnNodeDrop="rtvDocuments_HandleDrop"
            OnClientNodeDropping="onDropping" OnClientNodeDragging="onNodeDragging" MultipleSelect="true"
            EnableDragAndDropBetweenNodes="true" OnNodeExpand="rtvDocuments_NodeExpand" AllowNodeEditing="true"
            OnContextMenuItemClick="rtvDocuments_ContextMenuItemClick" OnNodeEdit="rtvDocuments_NodeEdit">
            <ContextMenus>
                <telerik:RadTreeViewContextMenu CssClass="ctxTreeMenu" ID="cMenuForGroups" runat="server">
                    <Items>
                        <telerik:RadMenuItem Value="Rename" Text="Rename ..." Enabled="false" ImageUrl="/_layouts/Img/Outlook/rename.gif"
                            PostBack="false">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="NewFolder" Text="New Group"  ImageUrl="/_layouts/Img/Outlook/12.gif">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="AddDoc" Text="Add New Document" ImageUrl="/_layouts/Img/Outlook/journal.gif">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="Delete" Text="Delete Group" ImageUrl="/_layouts/Img/Outlook/7.gif">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem IsSeparator="true">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="Copy" Text="Clone ..." ImageUrl="/_layouts/Img/Outlook/10.gif">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="AddExistingGroup" Text="Add Existing Group">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="AddExistingDoc" Text="Add Existing Document">
                        </telerik:RadMenuItem>
                        <telerik:RadMenuItem Value="ViewAll" Text="View all Instances of ..." ImageUrl="/_layouts/Img/Outlook/searchFolder.gif">
                        </telerik:RadMenuItem>
                    </Items>
                    <CollapseAnimation Type="OutBack" />
                </telerik:RadTreeViewContextMenu>
    </ContextMenus>
        </telerik:RadTreeView>
      <telerik:RadWindow ID="winGroupBrowse" runat="server"  EnableViewState="false"  Modal="true" Overlay="true" Width="875px" Height="545px"
         EnableShadow="true" DestroyOnClose="true" ShowContentDuringLoad="false" ReloadOnShow="true">
        <ContentTemplate>
               <div id="globalTree" class="globalTreeCont">
                    <asp:UpdatePanel ID="pnlTree" Visible="true" runat="server">
                    <ContentTemplate>
                        <telerik:RadTreeView CssClass="globalTree" OnNodeExpand="rtvDocuments_NodeExpand"
                            ID="rtvAllGroups" runat="server">
                        </telerik:RadTreeView>
                        </ContentTemplate>
                    </asp:UpdatePanel>
        </ContentTemplate>
    </telerik:RadWindow>
      <telerik:RadWindow ID="RadWndwAllDocs" runat="server"  EnableViewState="false"  Modal="true" Overlay="true" Width="875px" Height="545px"
         EnableShadow="true" DestroyOnClose="true" ShowContentDuringLoad="false" ReloadOnShow="true">
        <ContentTemplate>
                    <asp:UpdatePanel ID="pnlGrid" Visible="true" runat="server">
                      <ContentTemplate>
                        <telerik:RadGrid ID="rgrdAllDocs" runat="server" AutoGenerateColumns="false" AllowFilteringByColumn="true"
                            AllowPaging="true" PageSize="10" AllowSorting="true" Height="100%" Width="100%">
                            <PagerStyle Mode="NextPrevAndNumeric"  />
                            <MasterTableView Height="100%" Width="100%">
                                <Columns>
                                    <telerik:GridBoundColumn HeaderText="ID" DataField="ID" />
                                    <telerik:GridBoundColumn HeaderText="Title" DataField="Title" />
                                    <telerik:GridBoundColumn HeaderText="Description" DataField="Description" />
                                    <telerik:GridBoundColumn HeaderText="ISOGroups" DataField="ISOGroupText" />
                                </Columns>
                            </MasterTableView>
                        </telerik:RadGrid>
                          </ContentTemplate>
                    </asp:UpdatePanel>
                        </ContentTemplate>
    </telerik:RadWindow>
      <telerik:RadWindow ID="RadWndwUploadDocs" runat="server"  EnableViewState="false"  Modal="true" Overlay="true" Width="875px" Height="545px"
         EnableShadow="true" DestroyOnClose="true" ShowContentDuringLoad="false" ReloadOnShow="true">
        <ContentTemplate>
                   <asp:UpdatePanel ID="pnlUpload" Visible="true" runat="server" UpdateMode="conditional">
                                               <%-- If file upload is used instead of radAsyncUpload UNCOMMENT the trigger
                                                 <Triggers>
                                                   <asp:PostBackTrigger ControlID="SubmitButton" />
                                                  </Triggers> --%>
                       <ContentTemplate>
                        <div class="grid grid_18 wizardMargin">
                        <div id="uploadCont">
                                <div class="columns">
                                    <div class="col1">
                                        <h4>
                                            Groups on Page</h4>
                                        <div class="treeCont">
                                 <telerik:RadTreeView CssClass="globalTree" OnNodeExpand="rtvDocuments_NodeExpand"
                            ID="rtvGroupstoAddDocs" runat="server"></telerik:RadTreeView>
                                        </div>
                                    </div>
                                    <div class="col2">
                                        <h4>
                                            Uploaded Files</h4>
                                        <div class="fileTree">
                                            <asp:Label ID="labelNoResults" runat="server" Visible="True">No uploaded files</asp:Label>
                                            <asp:Repeater runat="server" ID="Repeater1">
                                                <ItemTemplate>
                                                    <div class="fileListStyle">
                                                        <%# DataBinder.Eval(Container.DataItem, "FileName").ToString() %>  (<%# DataBinder.Eval(Container.DataItem, "ContentLength").ToString() %>bytes)<br />
                                                    </div>
                                                </ItemTemplate>
                                            </asp:Repeater>
                                        </div>
                                    </div>
                                </div>
                                <div class="uploadControls">
                                    <h4>
                                        Select Files to Upload</h4>
                                    <div class="FileDetails">
                                        <table class="uploadTable">
                                            <tbody>
                                                <tr>
                                                    <td class="uploader">                                                
                                                 <telerik:RadAsyncUpload runat="server" ID="AsyncUpload1" Skin="default">
                                                    </telerik:RadAsyncUpload>
                                                  
                                                 //Tried asp fileupload, it is uploading files to document library and closing the radwindow.I donot want it to close it.
                                              //       <asp:FileUpload ID="FileUpload1" runat="server"  />
                                                        <asp:Button runat="server" ID="SubmitButton" Text="Upload files" OnClick="SubmitButton_Click" />  
                                               
                                                    </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </div>
                                </div>
                            </div>
                             </div>
                       </ContentTemplate>
                    </asp:UpdatePanel>
          </ContentTemplate>
       </telerik:RadWindow>

    Any help is appreciated.

  2. Harish
    Harish avatar
    3 posts
    Member since:
    Feb 2012

    Posted 01 Feb 2012 Link to this post

    I have added the radprogressmanager and radprogressarea to RadAsyncUpload and updated my web.config file and disabled the flash dependency as mentioned in few blogs eg:
    http://www.telerik.com/support/kb/aspnet-ajax/upload/906-ajax-callback-error.aspx and
    http://www.telerik.com/community/forums/aspnet-ajax/upload/radasyncupload-control-asking-for-login-in-sharepoint.aspx

    But still RadProgressArea never stops loading and I get the same 'Syntax error' (Please find the attachment), What else I am missing?



    <
    telerik:RadProgressManager runat="server" ID="RadProgressManager1" />  
                                                   <script type="text/javascript">
                                                       Telerik.Web.UI.RadAsyncUpload.Modules.Flash.isAvailable = function () { return false; }
      
                                                   </script>
                                                               
                                                   <telerik:RadAsyncUpload runat="server" ID="RadAsyncUpload1" OnFileUploaded="fileUploaded" />  
                                                   <telerik:RadProgressArea runat="server" ID="RadProgressArea1" />  
                                                                                                                                        
                                                    <%--<asp:FileUpload ID="FileUpload1" runat="server"  />--%>
                                                       <asp:Button runat="server" ID="SubmitButton" Text="Upload files" OnClick="SubmitButton_Click" />  
  3. Cat Cheshire
    Cat Cheshire avatar
    128 posts
    Member since:
    Jun 2010

    Posted 07 Feb 2012 Link to this post

    You can add the AsyncUpload and ProgressManager to a new VisualWebPart.
    Then you can test if the upload works (uploads files) firstly with,  and then without the ProgressManager(simply remove it from the webpart) – I am sure that this will help you find out what causes the error.
  4. Rohan
    Rohan avatar
    94 posts
    Member since:
    Jul 2012

    Posted 10 Aug 2012 Link to this post

    Hi all,

    I have one rad window with RadAsyncUpload and one asp.net button in window . i want to create -- after user click on the button the file is uploaded on server and rad widow gets close. i was completed this task ...but my problem is after the clicking to button my page gets postback and reloaded any way to stop to reload hole page .
  5. Harish
    Harish avatar
    3 posts
    Member since:
    Feb 2012

    Posted 10 Aug 2012 Link to this post

    I tried using Updatepanels -> Control templates -> Uplad button and outside button panel I used triggers which takes care of postback.....I think it works in ASP.net application, but if you are into Sharepoint and opening a usercontrol in radwindow then this wonot work, meaning you would not see the flicker (postback) but the document will not get uploaded and hence I created an application page and opened it in radwindow and hence on button click my application page will get refreshed not my original page ....
  6. Plamen
    Admin
    Plamen avatar
    2958 posts

    Posted 15 Aug 2012 Link to this post

    Hi,

    I tried to reproduce the issue you described but to no avail. Would you please share the exact isolated code that will help us observe the described issue that works properly in ASP.net application and does not work in SharePoint? Please remove all the controls and code that are not directly connected to the issue so we can inspect it and be more helpful.

    Regards,
    Plamen
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Back to Top