我已經開始使用ASP.net AJAX(最終☺)。我有一個更新面板和一個asp:UpdateProgress。我的問題:UpdateProgress總是強制換行,因爲它呈現爲div標籤。asp:UpdateProgress - 遏制換行
有什麼辦法強制它成爲一個跨度而不是?我想在一些其他控件的同一行上顯示它,而不必使用表格,或者甚至在CSS中使用絕對定位顫抖。
我與ASP.net AJAX 1.0和.net 3.0卡住,如果這有所作爲。
我已經開始使用ASP.net AJAX(最終☺)。我有一個更新面板和一個asp:UpdateProgress。我的問題:UpdateProgress總是強制換行,因爲它呈現爲div標籤。asp:UpdateProgress - 遏制換行
有什麼辦法強制它成爲一個跨度而不是?我想在一些其他控件的同一行上顯示它,而不必使用表格,或者甚至在CSS中使用絕對定位顫抖。
我與ASP.net AJAX 1.0和.net 3.0卡住,如果這有所作爲。
我的博客上講述我自己解決這個問題。 http://www.joeaudette.com/solving-the-aspnet-updateprogress-div-problem.aspx
我所做的是從Mono項目中借用UpdateProgress控件,並將其修改爲以跨度而不是div來呈現。我還複製了與該控件關聯的ms-ajax javascript,並將其修改爲在display:inline和display:none之間切換,而不是使用display:block
在我的帖子中有一個鏈接.zip文件,其中包含修改的文件。
你可以讓一個div內嵌這樣的:
<div style="display:inline">stuff</div>
我懷疑它雖然使你的股利......我不記得我的網頁上有這個問題...
我有同樣的問題。有沒有簡單的方法告訴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>
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!";
}
}
只需將您的UpdateProgress風格=「位置的跨度內:絕對的; 「
這個偉大的工程。您需要將DynamicLayout屬性設置爲false以使其發揮作用。 – oscilatingcretin 2013-03-04 14:09:46
只是適用float:left
到標籤/文本等 像這樣:
在標題:
<style type="text/css">
.tbx
{
float:left;
}
在身:
<asp:TextBox CssClass="tbx" .... />
一個更好,最簡單的方法是在UpdatePanel中使用帶有span的UpdateProgress。我已經測試過這個功能,並在IE,FF和Chrome瀏覽器中正常工作。像這樣:
<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我用...
.load-inline {display:inline-block}
我的解決辦法: 在CSS
.progress[style*="display: block;"] {
display:inline !important;
}
和ASP
<asp:UpdateProgress class="progress" ID="UpdateProgress1" runat="server">
酷,從單聲道的東西在一個很好的主意! – 2009-11-09 17:59:28
我改變了接受的答案(對不起史蒂文!),因爲這種方法效果更好。我已將源發佈到我的UpdateProgressEx控件:http://www.stum.de/2010/01/28/an-asp-net-ajax-updateprogress-that-can-render-inline/ – 2010-01-28 02:04:12