سؤال

لقد بدأت العمل مع ASP.net اياكس (أخيرا ☺).و لدي تحديث لوحة جنبا إلى جنب مع asp:UpdateProgress.مشكلتي:على UpdateProgress دائما قوات خط كسر ، لأنه يجعل بها باعتبارها شعبة-العلامة.

هل هناك أي وسيلة لإجبار كونها span بدلا من ذلك ؟ أريد أن عرض على نفس السطر مثل بعض عناصر التحكم الأخرى دون الحاجة إلى استخدام جدول أو حتى يرتعد المواقع المطلق في CSS.

أنا عالقة مع ASP.net اياكس 1.0 .صافي 3.0 إذا كان هذا يحدث فرقا.

هل كانت مفيدة؟

المحلول

أنا فقط كتبت عن بلدي حل هذه المشكلة.http://www.joeaudette.com/solving-the-aspnet-updateprogress-div-problem.aspx

ما فعلته كان استعارة UpdateProgress التحكم من أحادية مشروع تعديل لعرض كما span بدلا من شعبة.أنا أيضا نسخ أحد موديفيد ms-ajax javascript المرتبطة التحكم و تعديله للتبديل بين العرض:مضمنة display:none بدلا من استخدام display:block

هناك .الرمز البريدي الملفات المرتبطة في منصبي الذي يحتوي على الملفات التي تم تعديلها.

نصائح أخرى

ببساطة ضع UpdateProgress داخل span مع style="position:absolute;"

لدي نفس المشكلة.ليس هناك طريقة سهلة لقول 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!";
    }
}

الحل:في CSS

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

و ASP

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

أفضل و أبسط طريقة هي استخدام UpdateProgress داخل UpdatePanel مع العمر.لقد اختبرت هذا العمل بشكل صحيح في IE, FF, متصفحات كروم.مثل هذا:

<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}

مجرد تطبيق float:left أن التصنيف/مربع نص.... الخمثل هذا:

في الرأس:

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

في الجسم:

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

يمكنك جعل div مضمنة مثل هذا:

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

أنا متشككة من تقديم div بالنسبة لك على الرغم من...أنا لا أتذكر وجود هذه المشكلة على صفحاتي...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top