asp:UpdateProgress - 抑制换行符

Mic*_*tum 9 asp.net asp.net-ajax

我已经开始使用ASP.net AJAX(最后是☺).我有一个更新面板和一个asp:UpdateProgress.我的问题:UpdateProgress总是强制换行,因为它呈现为div-tag.

有没有办法强迫它成为跨度?我希望将它显示在与其他控件相同的行上,而不必在CSS中使用表格甚至是颤抖的绝对定位.

我坚持使用ASP.net AJAX 1.0和.net 3.0,如果这有所作为.

小智 10

只需将UpdateProgress置于带有style ="position:absolute;"的范围内


Ste*_*ams 8

我有同样的问题.没有简单的方法可以告诉updateProgress呈现内联.你最好滚动自己的updateProgress元素.您可以添加beginRequest侦听器和endRequest侦听器,以显示和隐藏要内联显示的元素.这是一个简单的页面,显示了如何做到这一点:

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>
Run Code Online (Sandbox Code Playgroud)

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!";
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 2

我刚刚在博客中介绍了我自己解决这个问题的方法。 http://www.joeaudette.com/solving-the-aspnet-updateprogress-div-problem.aspx

我所做的是从 Mono 项目借用 UpdateProgress 控件,并将其修改为呈现为跨度而不是 div。我还复制了与该控件关联的修改后的 ms-ajax javascript,并将其修改为在 display:inline 和 display:none 之间切换,而不是使用 display:block

我的帖子中链接了一个 .zip 文件,其中包含修改后的文件。