Pregunta

He empezado a trabajar con ASP.net AJAX (finalmente ☺).y yo tengo un panel de actualización junto con un asp:UpdateProgress.Mi Problema:El UpdateProgress siempre las fuerzas de un salto de línea, debido a que se presenta como un div-tag.

Hay alguna forma de forzar a que es un lapso en su lugar?Quiero mostrar en la misma línea como algunos otros controles sin tener que usar una tabla o incluso se estremece posicionamiento absoluto en CSS.

Estoy atascado con ASP.net AJAX 1.0 y .net 3.0 si que hace una diferencia.

¿Fue útil?

Solución

Yo sólo escribió en su blog acerca de mi propia solución a este problema.http://www.joeaudette.com/solving-the-aspnet-updateprogress-div-problem.aspx

Yo lo que hice fue pedir prestado el control UpdateProgress del Mono proyecto y modificado para representar como un lapso en lugar de un div.También he copiado un modificaron el ms-ajax javascript asociado con el control y la modificó para alternar entre la pantalla:en línea y display:none en lugar de usar display:block

Hay una .zip archivo vinculado en mi post que contiene los archivos modificados.

Otros consejos

simplemente coloque el UpdateProgress dentro de un span con style="position:absolute;"

He tenido el mismo problema.No hay ninguna manera fácil de saber el updateProgress para procesamiento en línea.Sería mejor que fuera a rodar sus propios updateProgress elemento.Usted puede agregar un beginRequest escucha y endRequest oyente para mostrar y ocultar el elemento que desea mostrar en línea.Aquí es simple página que muestra cómo hacerlo:

aspx

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>


    <asp:UpdatePanel runat="server" ID="up1" UpdateMode="Always">
        <ContentTemplate>
            <asp:Label ID="lblTest" runat="server"></asp:Label>
            <asp:Button ID="btnTest" runat="server" Text="Test" OnClick="btnTest_OnClick" />
        </ContentTemplate>    
    </asp:UpdatePanel>
    <img id="loadingImg" src="../../../images/loading.gif" style="display:none;"/><span>Some Inline text</span>

    <script>

        Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function(sender, args) {
            if (args.get_postBackElement().id == "btnTest") {
                document.getElementById("loadingImg").style.display = "inline";
            }
        });


        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
            if (document.getElementById("loadingImg").style.display != "none") {
                document.getElementById("loadingImg").style.display = "none";
            }
        });

    </script>

    </div>
</form>

cs

public partial class updateProgressTest : System.Web.UI.Page
{
    protected void btnTest_OnClick(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1000);
        this.lblTest.Text = "I was changed on the server! Yay!";
    }
}

Mi solución:En CSS

.progress[style*="display: block;"] {
     display:inline !important;
}

Y ASP

<asp:UpdateProgress  class="progress" ID="UpdateProgress1" runat="server">

Una mejor y más sencilla es utilizar UpdateProgress dentro de UpdatePanel con el palmo.He probado esta y funciona correctamente en IE, FF, Chrome, navegadores.como este:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        ..........
        <span style="position:absolute;">
            <asp:UpdateProgress ID="UpdateProgress1" runat="server"
                AssociatedUpdatePanelID="UpdatePanel1">
                    <ProgressTemplate>
                        <img alt="please wait..."src="/Images/progress-dots.gif" />
                    </ProgressTemplate>
            </asp:UpdateProgress> 
        </span> 
    </ContentTemplate>
</asp:UpdatePanel>

Mi solución fue hacerlo de la siguiente manera...

<div class="load-inline">LOADER HERE</div>

Y en mi CSS puedo usar...

.load-inline {display:inline-block}

Solo tienes que aplicar float:left a su etiqueta/cuadro de texto etc.Como este:

en el encabezado:

<style type="text/css">
.tbx 
{
    float:left;
}

en el cuerpo:

<asp:TextBox CssClass="tbx" .... />

Usted puede hacer un div en línea como esta:

<div style="display:inline">stuff</div>

Yo soy escéptico de que la representación de la div para usted, aunque...Yo no recuerdo haber este problema en mis páginas...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top