visual toolkitscriptmanager studio net modal examples descargar control asp asp.net asp.net-ajax

asp.net - toolkitscriptmanager - asp: UpdateProgress-supresión del salto de línea



modal ajax control toolkit (8)

Puedes hacer un div en línea así:

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

Aunque soy escéptico de que represente el div para ti ... No recuerdo haber tenido este problema en mis páginas ...

Empecé a trabajar con ASP.net AJAX (finalmente ☺). y tengo un panel de actualización junto con un asp: UpdateProgress. Mi problema: UpdateProgress siempre obliga a un salto de línea, ya que se presenta como una etiqueta div.

¿Hay alguna forma de forzarlo a que sea un lapso? Quiero mostrarlo en la misma línea que algunos otros controles sin tener que usar una tabla o incluso estremece el posicionamiento absoluto en CSS.

Estoy atrapado con ASP.net AJAX 1.0 y .net 3.0 si eso hace la diferencia.


He tenido el mismo problema. No hay una manera fácil de decirle a la actualización Progreso que se realice en línea. Sería mejor que transfiera su propio elemento updateProgress. Puede agregar un oyente beginRequest y un oyente endRequest para mostrar y ocultar el elemento que desea visualizar en línea. Aquí hay una página simple 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!"; } }


simplemente coloque su UpdateProgress dentro de un lapso con style = "position: absolute;"


Acabo de escribir en mi blog sobre mi propia solución a este problema. http://www.joeaudette.com/solving-the-aspnet-updateprogress-div-problem.aspx

Lo que hice fue tomar prestado el control UpdateProgress del proyecto Mono y lo modifiqué para representarlo como un lapso en lugar de un div. También copié un modifed el javascript ms-ajax asociado con el control y lo modifiqué para alternar entre visualización: en línea y visualización: ninguno en lugar de usar visualización: bloque

Hay un archivo .zip vinculado en mi publicación que contiene los archivos modificados.


Una forma mejor y más simple es usar UpdateProgress dentro de UpdatePanel con span. Lo probé y funcionó correctamente en IE, FF, navegadores Chrome. Me gusta esto:

<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 envolverlo de la siguiente manera ...

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

Y en mi CSS uso ...

.load-inline {display:inline-block}


Simplemente aplique float:left de su etiqueta / cuadro de texto, etc. De esta manera:

en el encabezado:

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

en el cuerpo:

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


Mi solución: en CSS

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

Y ASP

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