Foros del Web » Programando para Internet » ASPX (.net) »

[masterpage, updatepanel y fileupload] no se puede subir archivo

Estas en el tema de [masterpage, updatepanel y fileupload] no se puede subir archivo en el foro de ASPX (.net) en Foros del Web. Hola amigos: Tengo un problema que no sé como resolver, aquí los datos: 1. Tengo un MasterPage y ahí tengo un UpdatePanel y un ModalPopup ...
  #1 (permalink)  
Antiguo 05/09/2011, 17:39
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 20 años, 8 meses
Puntos: 0
Pregunta [masterpage, updatepanel y fileupload] no se puede subir archivo

Hola amigos:

Tengo un problema que no sé como resolver, aquí los datos:
1. Tengo un MasterPage y ahí tengo un UpdatePanel y un ModalPopup que lanza un UpdateProgress... la página tiene esta forma básica:
Código PHP:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MyMasterPage.master.cs" Inherits="Presentation_MyMasterPage" %>

<%-- ... --%>
<
ajax:ToolkitScriptManager ID="tsmAjaxScriptManager" runat="server" EnableScriptGlobalization="True" EnablePartialRendering="true" EnableScriptLocalization="True">
</
ajax:ToolkitScriptManager>
<
asp:UpdatePanel ID="upAdmin" runat="server" UpdateMode="Conditional">
    <
ContentTemplate>
        <
asp:ContentPlaceHolder ID="cph_body" runat="server">
        </
asp:ContentPlaceHolder>
    </
ContentTemplate>
</
asp:UpdatePanel>
<
asp:Panel ID="panelUpdateProgress" runat="server" CssClass="updateProgress">
    <
asp:UpdateProgress ID="UpdateProg1" DisplayAfter="0" runat="server">
        <
ProgressTemplate>
            <
div style="position: relative; top: 30%; text-align: center; vertical-align: middle;">
                <
asp:Image ID="imgProcessing" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/App_Themes/Default/img/loading.gif" />&nbsp;
                <
asp:Label ID="lblProcessing" runat="server" Text="Procesando..."></asp:Label>
            </
div>
        </
ProgressTemplate>
    </
asp:UpdateProgress>
</
asp:Panel>
<
ajax:ModalPopupExtender ID="ModalProgress" runat="server" TargetControlID="panelUpdateProgress" BackgroundCssClass="modalBackground_new" PopupControlID="panelUpdateProgress">
</
ajax:ModalPopupExtender
2. Tengo un montón de páginas que tienen asociado el master page que he descrito antes... las web se ven asi:
Código PHP:
<%@ Page Language="C#" MasterPageFile="~/Presentation/MyMasterPage.master" AutoEventWireup="true" CodeFile="MyPage.aspx.cs" Inherits="Presentation_MyPage" Title="Untitled Page" %>

<
asp:Content ID="cnt_body" ContentPlaceHolderID="cph_body" runat="Server">
    <
asp:MultiView ID="mv01" runat="server" ActiveViewIndex="0">
        <
asp:View ID="mv01_List" runat="server">
            <%-- ... --%>
        </
asp:View>
        <
asp:View ID="mv01_New" runat="server">
            <%-- ... --%>
            <
asp:UpdatePanel ID="upAdminInsert" runat="server">
                <
Triggers>
                    <
asp:PostBackTrigger ControlID="btnNewSave" />
                </
Triggers>
                <
ContentTemplate>
                <
asp:FileUpload ID="fuNewImagen" runat="server" />
                <
asp:Button ID="btnNewSave" runat="server" Text="Aceptar" 
                    
OnClick="btnNewSave_Click"
                    
ValidationGroup="NewNews" CssClass="Blue_Style" 
                    
OnClientClick="javascript:bloquea('NewNews');" />
                </
ContentTemplate>
            </
asp:UpdatePanel>
        </
asp:View>
        <
asp:View ID="mv01_Edit" runat="server">
            <%-- ... --%>
        </
asp:View>
    </
asp:MultiView
El problema es el sigueinte: cuando entro por primera vez a la página MyPage.aspx, me aparece la primera vista, aprieto un botón que hay en ella y voy a la vista que muestra el <asp:FileUpload />... subo un archivo, doy clic en "Aceptar"... se graban los datos de un formulario (que no he puesto aquí para abreviar cdigo) pero el archivo no sube, no se guarda físicamente... cuando trato de hacer la misma operación (ya por segunda vez) si sube el archivo.

En síntesis, mi priblema es que, en la primera carga no sube el archivo y en la segunda vez que entro a la vista que tiene el formulario, el archivo si sube ¿Que puede estar pasando? ¿Que solución puedo dar?

Para esto ya he intentado registrar el botón "Aceptar" en el ScriptManager asi:
Código:
AjaxControlToolkit.ToolkitScriptManager.GetCurrent(this.Page).RegisterPostBackControl(ctrl);
y así también:
Código:
tsmAjaxScriptManager.RegisterPostBackControl(ctrl);
Ademas les comento que es importante que el cliente vea el mensaje de "En proceso" que se ha introducido en el MasterPage... antes de hacer los cambios, en el MasterPage no existía el UpdatePanel ni el UpdateProgress ni el ModalPopup; tampoco existía el UpdatePanel en MyPage.aspx. Necesito resolver este problema pues tengo que replicar la implementación de esto en muuuuuchas páginas que estan asociadas a dicho MasterPage.

Quedo agradecido de antemano por las respuestas que me puedan dar
Saludos
  #2 (permalink)  
Antiguo 07/09/2011, 06:26
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: [masterpage, updatepanel y fileupload] no se puede subir archivo

El control FileUpload no funciona con el update panel ni funcionará nunca ya que depende de un postback completo para ello.

Tienes dos opciones:

1- Obtener un control de terceros para subida de archivos asíncrona (UpdatePanel)
2- Añadirle al UpdatePanel PostBackTrigger con target a tu FileUpload

Ahora bien... realmente la mejor es una tercera... no gestionar nunca tooooda la aplicación con un update panel... para el rendimiento.. es una locura. Es incluso mejor usar 10 update panels diferentes pero solo donde realmente se necesiten o mejor todavia... no usar update panels y manejarlo con un Ajax mas puro, consumiendo WebServices desde javascript con ayuda del ScriptManager y actualizando la web con javascript
  #3 (permalink)  
Antiguo 26/03/2014, 15:23
 
Fecha de Ingreso: febrero-2014
Mensajes: 1
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: [masterpage, updatepanel y fileupload] no se puede subir archivo

En este link encontraras un ejemplo de como solucionar el problema

http://www.systemdeveloper.info/2014/01/fileupload-control-in-update-panel.html

También puedes mirar este link

http://www.systemdeveloper.info/2014/03/force-downloading-file-from-c.html

Última edición por angeloadinolffi83; 26/03/2014 a las 15:25 Razón: No se muestran los links

Etiquetas: aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.