ASP.NET, dialog de l’interface utilisateur jQuery affiché dans la page pendant 1-2 secondes

J’ai une page ASP.NET sur laquelle je vais vérifier si l’utilisateur s’est connecté au système (en vérifiant la valeur de la session) dans le chargement de la page et s’il n’est pas connecté, il affichera une boîte de dialog jQueryUI pour la connexion.

Ma page ASPX contient ces scripts dans la balise head

 body { font-size: 62.5%; } label, input { display:block; } input.text { margin-bottom:12px; width:95%; padding: .4em; } fieldset { padding:0; border:0; margin-top:25px; } h1 { font-size: 1.2em; margin: .6em 0; } div#users-contain { width: 350px; margin: 20px 0; } div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; } div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; } .ui-button { outline: 0; margin:0; padding: .4em 1em .5em; text-decoration:none; !important; cursor:pointer; position: relative; text-align: center; } .ui-dialog .ui-state-highlight, .ui-dialog .ui-state-error { padding: .3em; }   $(function() { var name = $("#name"), email = $("#email"), password = $("#password"), allFields = $([]).add(name).add(email).add(password), tips = $("#validateTips"); function updateTips(t) { tips.text(t).effect("highlight",{},1500); } function checkRegexp(o,regexp,n) { if ( !( regexp.test( o.val() ) ) ) { o.addClass('ui-state-error'); updateTips(n); return false; } else { return true; } } $("#dialog").dialog({ bgiframe: true, autoOpen: false, height: 250, modal: true, buttons: { Cancel: function() { $(this).dialog('close'); }, NewUser: function() { $(this).dialog('close'); window.location.href="Register.aspx"; }, 'Sign in': function() { var bValid = true; allFields.removeClass('ui-state-error'); bValid=true; isValidationFails=false; if (bValid) { // Go to another page } } } }, close: function() { allFields.val('').removeClass('ui-state-error'); } }); $('#create-user').click(function() { $(this).dialog('close'); window.location.href="Register.aspx" }) .hover( function(){ $(this).addClass("ui-state-hover"); }, function(){ $(this).removeClass("ui-state-hover"); } ).mousedown(function(){ $(this).addClass("ui-state-active"); }) .mouseup(function(){ $(this).removeClass("ui-state-active"); }); //}); var isAuthenticated = $("#isAuthenticated").val(); if (isAuthenticated && isAuthenticated == "false") { $("#dialog").dialog("open"); } 

});

  

Plus de code côté (dans Page_Load)

  if (Session["trCustomerId"] != null) { Response.Write("Logged in user"); ClientScript.RegisterHiddenField("isAuthenticated", "true"); } else { ClientScript.RegisterHiddenField("isAuthenticated", "false"); } 

Le programme fonctionne bien maintenant. Mais le problème est que lorsque la page est en cours de chargement, elle affiche UIDialog div pendant 1 à 2 secondes à l’écran, puis disparaît. Je ne veux pas montrer comme ça. Quelqu’un peut-il me dire comment résoudre ce problème?

Essayez de définir le style de votre balise de dialog pour qu’il affiche: aucun;

 #dialog{ display: none; } 

Vous pouvez ensuite l’afficher si dialog.open ne le fait pas pour vous.

 $('#dialog').show() 

essayez ceci, en code HTML, tapez style = “display: none;” pour le navigateur #dialog, chargez d’abord le HTML