मैं एक लोडिंग स्क्रीन बनाना चाहता था, लेकिन जब मैं चयनित इंडेक्स को ट्रिगर करता हूं तो कोड एक ही समय में सभी को निष्पादित कर रहा है, इसलिए यह लंबे समय तक लोड होता है, मैं जो करना चाहता था वह ड्रॉपडाउन का विकल्प चुनना है, फिर लोडिंग स्क्रीन दिखाएं पेज लोड होने पर "कवरस्क्रीन" को दृश्यमान बनाते हुए, मैंने जावास्क्रिप्ट और System.Threading.Thread.Sleep(22); सहित कुछ अलग-अलग चीजों की कोशिश की है, लेकिन बिना किसी किस्मत के, आपके समय के लिए अग्रिम धन्यवाद।

<div id="loading">
        <div id="coverScreen" class="LockOn">
        </div>
    </div>
<asp:DropDownList ID="DropDown" DataValueField="IDCoContratante" DataTextField="Designation" runat="server" Enabled="true" CssClass="dropdownCocont" Style="border-radius: 7px; border-style: none;" AutoPostBack="true" OnSelectedIndexChanged="DropDown_ListarPropostas_SelectedIndexChanged"></asp:DropDownList>



protected void DropDown_ListarPropostas_SelectedIndexChanged(object sender, EventArgs e)
        {

            //Response.Write("<script>document.getElementById('coverScreen').style.visibility = 'visible';</script>");
            coverScreen.Visible = true;




            System.Threading.Thread.Sleep(22);

            ClassConn c = new ClassConn();
            c.OpenConection();

            DataTable dt = new DataTable();


            //SqlDataAdapter AtualizaDropLotes = new SqlDataAdapter(" SELECT dbo.TblLoteCoContratanteAdjudicado.IDLote, CAST(dbo.TblLote.NrLote AS varchar) + '  ' + dbo.TblLote.DescricaoLote AS DescricaoLote, dbo.TblLote.IDAcordoQuadro " +
            //                                                      " FROM dbo.TblLoteCoContratanteAdjudicado INNER JOIN dbo.TblLote ON dbo.TblLoteCoContratanteAdjudicado.IDLote = dbo.TblLote.IDLote AND dbo.TblLoteCoContratanteAdjudicado.IDLote = dbo.TblLote.IDLote " +
            //                                                      " WHERE (dbo.TblLote.IDAcordoQuadro = '" + DropDownAcordosQuadros_ListarPropostas.SelectedValue + "') " +
            //                                                      " GROUP BY dbo.TblLoteCoContratanteAdjudicado.IDLote, CAST(dbo.TblLote.NrLote AS varchar) + '  ' + dbo.TblLote.DescricaoLote, dbo.TblLote.IDAcordoQuadro", c.con);
            string _query = "SELECT '%' as IDLote, 'Todos' as DescricaoLote UNION ALL SELECT CAST(dbo.TblLoteCoContratanteAdjudicado.IDLote AS VARCHAR), 'Nº' + CAST(dbo.TblLote.NrLote AS varchar) + ' - ' + dbo.TblLote.DescricaoLote AS DescricaoLote FROM dbo.TblLoteCoContratanteAdjudicado INNER JOIN dbo.TblLote ON dbo.TblLoteCoContratanteAdjudicado.IDLote = dbo.TblLote.IDLote AND dbo.TblLoteCoContratanteAdjudicado.IDLote = dbo.TblLote.IDLote WHERE(dbo.TblLoteCoContratanteAdjudicado.NIFCoContratante = '" + id_Vat + "') AND(dbo.TblLote.IDAcordoQuadro = '" + DropDownAcordosQuadros_ListarPropostas.SelectedValue + "')";

            SqlDataAdapter AtualizaDropLotes = new SqlDataAdapter(_query, c.con);

            AtualizaDropLotes.Fill(dt);

            if (dt != null)
            {
                DropDownLotes_ListaPropostas.DataSource = dt;
                DropDownLotes_ListaPropostas.DataBind();


            }

            c.CloseConnection();
            coverScreen.Visible = false;
        }
1
Frederico Margarido 28 मई 2019, 20:11

1 उत्तर

सबसे बढ़िया उत्तर

एलेक्स कुद्रियाशेव और गस ने मुझे जो जानकारी दी, उसके बाद मैं एक समाधान खोजने में सक्षम था जो मैंने समस्या को हल करने के लिए किया था:

मैंने एएसपी के बीच अपनी लोडिंग स्क्रीन डाली: एएसपी के साथ अपडेट पैनेल: शीर्ष पर स्क्रिप्ट मैनेजर।

<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                <div id="coverScreen" class="LockOn" runat="server">
                </div>
            </ProgressTemplate>
        </asp:UpdateProgress>

और मैं मुख्य div . में निम्नलिखित कोड डाला

<div id="Main">
 <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>

//your code

    </ContentTemplate>
  </asp:UpdatePanel>
</div>
0
Frederico Margarido 29 मई 2019, 14:48