Asp.net asp:UpdateProgress-抑制换行

Asp.net asp:UpdateProgress-抑制换行,asp.net,asp.net-ajax,Asp.net,Asp.net Ajax,我已经开始使用ASP.net AJAX(最终☺). 我有一个更新面板和一个asp:UpdateProgress。我的问题是:UpdateProgress总是强制换行,因为它呈现为div标记 有没有办法强迫它成为一个跨距呢?我想把它显示在与其他控件相同的行上,而不必使用表格,甚至不必在CSS中使用绝对位置 如果ASP.net AJAX 1.0和.net 3.0有区别的话,我会坚持使用它们。您可以像这样内联创建一个div: <div style="display:inline">stuf

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

有没有办法强迫它成为一个跨距呢?我想把它显示在与其他控件相同的行上,而不必使用表格,甚至不必在CSS中使用绝对位置


如果ASP.net AJAX 1.0和.net 3.0有区别的话,我会坚持使用它们。

您可以像这样内联创建一个div:

<div style="display:inline">stuff</div>
<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>
东西

不过,我怀疑它是否会为您呈现div…我不记得我的页面上出现过此问题…

我也遇到过同样的问题。没有简单的方法可以告诉updateProgress以内联方式呈现。您最好使用自己的updateProgress元素。您可以添加beginRequest侦听器和endRequest侦听器来显示和隐藏e要内联显示的元素。下面是一个简单的页面,显示如何内联显示:

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>

只需使用style=“position:absolute;”“

将UpdateProgress放在一个span中,只需将
float:left
应用于标签/文本框等。 像这样:

在标题中:

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

.tbx
{
浮动:左;
}
在正文中:

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

我刚刚在博客上介绍了我自己解决这个问题的方法。

我所做的是从Mono项目借用UpdateProgress控件,并将其修改为作为span而不是div进行渲染。我还复制了一个与该控件关联的ms ajax javascript,并将其修改为在display:inline和display:none之间切换,而不是使用display:block


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

一个更好、最简单的方法是在UpdatePanel中使用UpdateProgress和span。我已经对此进行了测试,并在IE、FF、Chrome浏览器中正常工作。如下所示:

<div style="display:inline">stuff</div>
<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>

..........

我的解决方案是将其包装如下

<div class="load-inline">LOADER HERE</div>
我的解决方案: 在CSS中

和ASP

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


我正在更改已接受的答案(抱歉,Steven!),因为这种方法效果更好。我已将源代码发布到我的UpdateProgressEx控件:这很好。您需要将DynamicClayOut属性设置为false才能使其正常工作。
<asp:UpdateProgress  class="progress" ID="UpdateProgress1" runat="server">