Hej Laddas den nya sidan med ajax? I så fall borde det vara lätt att ordna. Om den laddas på vanligt sätt går det nog inte utan att använda frames. Oj ursäkta, fick för mig att det var en webbapplikation men såg nu att du skrev i c# forumet. Det är en webbapplikation. För att vara petig så använder jag faktiskt både frames och masterpage. Först och främst rekommenderar jag att du skaffar jquery. Det finns på www.jquery.com. Och du inkluderar det som vilket javascript som helst.Visa för användaren att servern jobbar
Har en sida i en masterpage som vid en speciell knapptryckning tar lite tid att ladda. Detta vill jag visa för användaren på ett snyggt sätt. Antingen genom att i en textruta skriva typ "laddar sida" eller på något annat snyggt sätt. (asp.net, c#)
Jag har tidigare gjort det med javascript
<code>
btnEdit.Attributes["onclick"] = "javascript:document.getElementById('lblLoading').innerText = 'Hämtar värden ...vänta'";
</code>
Det funkar bra. Dock får jag inte det att funka i min content-sida. Har ovanstående rad i page_loaden på content sidan.
Är det något med masterpage som gör att det inte funkar? Finns det någon med en bra idé?
Tacksam för hjälp!Sv: Visa för användaren att servern jobbar
Sv:Visa för användaren att servern jobbar
Sv: Visa för användaren att servern jobbar
Men sidan som är aktuell ligger i en masterpage.
Hur ska jag få till det med Ajax om jag skulle kika på det alternativet?Sv:Visa för användaren att servern jobbar
Sedan behöver du 2 element på sidan
<code><span id="loading_container"></span>
Gå till nästa sida</code>
Och så javascriptet:
<code><script type="text/javascript">
// När man klicka rpå länken körs denna funktion:
$('#annan_sida').click(function() {
// Sätt text i loading-containern.
$('loading_container.').text('Laddar sida....');
// Hämta nästa sida med ajax
$.ajax({
url : 'sida2.html', // Url till sidan du vill ladda
dataType: 'html', // Responsen från requesten är html
success: function(data) { // Success-funktionen, när sidan har laddats körs den.
var new_html = $(data); // data innehåller nya sidans html som en text-sträng. Vi gör om den till en variabel i jQuery-format.
$('body').html( $('body', new_html).html() ); // Den här raden kan verka knepig, men så farligt är det inte. med $('body') tar vi nuvarande sidans innehåll. .html( data ) betyder att vi ger den ett nytt innehåll vilket i det här fallet är: $('body', new_html).html(). Alltså body-taggens innehåll från den nya sidan. När vi inte skickar med någon parameter till .html() så returneras istället innehållet.
}
});
});
</script></code>
Den här lösningen har sina för- och nackdelar.
Fördelarna är att övergången mellan sidor blir mycket snyggare, du kan till och med animera den om du vill. Ta en titt på hur vi gjort på www.civil.se.
Nackdelarna är att sidan då kräver javascript för att fungera och att sökmotorerna inte gillar det. Men båda sakerna går att komma förbi.
På civil har vi gjort så att alla länkar skrivs som vanligt.. text och sedan skriver vi om dom med javascript så de använder ajax istället. På så sätt fungerar det både med och utan javascript och sökmotorerna blir inte sura.
Läs mer om ajax-funktionen på: http://docs.jquery.com/Ajax
PS. har inte testat kodne jag skrev så det är inte omöjligt att den har någon bug.