2016-04-14 6 views
0

Использование «ajaxToolKit: AsyncFileUpload» для загрузки изображений в моем приложении:не могу использовать ScriptManager RegisterClientScriptBlock witgh AJAX AsyncFileUpload

<ajaxToolkit:AsyncFileUpload OnClientUploadError="uploadError" 
           OnClientUploadComplete="ajaxUploadImage_ClientUploadComplete" runat="server" 
           ID="ajaxUploadImage" Width="400px" UploaderStyle="Modern" 
           CompleteBackColor = "White" 
           UploadingBackColor="#CCFFFF" ThrobberID="imgLoader" 
           OnUploadedComplete = "ajaxUploadImage_OnUploadComplete" 
           OnClientUploadStarted="AssemblyFileUpload_Started" 
           /> 

решаемой Я хочу добавить ограничение на количество изображений, пользователь может загружать, если предел превзошел пожар, «popUp« attachmentLimitReachedScript »из scriptManager, если не продолжить ... но я прав, говоря, что вы не можете использовать диспетчера сценариев изнутри ajax-управления ... любые идеи работы?

protected void ajaxUploadImage_OnUploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
     { 
      //attachment limit has not been reached, DO NOT UPLOAD IMAGES 
      if (hasUserReachedImageUploadLimit()) 
      { 
       return; 
      } 

      //attachment limit has not been reached, continue with other functionality 
} 

    protected bool hasUserReachedImageUploadLimit() 
     { 
      bool limitReached = false; 

      DataAccess.Classes.CheckPricePlan CheckCustomerAccountLimitations = new DataAccess.Classes.CheckPricePlan(); 
      string attachmentLimitReachedScript = CheckCustomerAccountLimitations.imageTableSize(currentUser.UserWorkspace.WorkSpaceID, currentUser.UserWorkspace.Organisation.ID); 
      //if attachmentLimitReachedScript != "AllowedToImage", attachment limit has been reached, display popUp 
      if (attachmentLimitReachedScript != "AllowedToAddAttachment") 
      { 
       attachmentLimitReachedScript += "(alert('end'));"; 
       string test = "(alert('start'));" + attachmentLimitReachedScript; 
       ScriptManager.RegisterClientScriptBlock(upViewUploadImages, upViewUploadImages.GetType(), "attachmentLimitReachedScript", test, true); 
       upViewUploadImages.Update(); 
       limitReached = true; 
      } 

      return limitReached; 
     } 

Я добавил предупреждение (начало) и оповещение (ru d) до и после сценария. оба предупреждения отображаются, и я знаю, что сценарий не является проблемой, потому что я нахожу его в другом месте на той же странице, и он отлично работает

ответ

1

Да, нет возможности ограничить количество выгружаемых файлов.

Вы можете скрыть или разорвать каким-либо образом управление с кодом клиента при возникновении события OnClientUploadComplete.

Или вы можете установить Visible=false, поэтому серверный метод OnPreRender() не будет вызываться, и управление не будет реагировать на отправку файлов.