MSGbox v internetové aplikaci   zodpovězená otázka

ASP.NET WebForms

Zdravím, psal jsem si ve Visual Studio web, na kterém jsem měl i pár zpráv, které se zobrazovaly pomocí msgBox - vše mi fungovalo skvěle, až do chvíle, co jsem to nahrál na internet - tam to prostě nechce fungovat. Nemá s tím někdo zkušenosti? Popř. jak msgbox nahradit?

MsgBox("Musíte se zaregistrovat", MsgBoxStyle.OkOnly, "Chyba")

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Už mi cvaklo :-) msgBox na serveru je blbost... musím to pořešit přes nějaký javascript. Omlouvám se za tento zbytečně založený topic.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jednoduse :]

Treba ...

Public Shared Sub ShowAlert(ByVal currentPage As Page, ByVal message As String)
                Dim sb As New StringBuilder()
                sb.Append("alert('")
                sb.Append(message)
                sb.Append("');")
                currentPage.ClientScript.RegisterStartupScript(GetType(Errors), "showalert", sb.ToString(), True)
End Sub

Ve strance staci zavolat ShowAlert(me, "Musite se zaregistrovat!")

hf :]

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tedy že bych to nazýval "Jednoduse" oproti MsgBox(""), to snad ne. Já používám AjaxExtender ConfirmButton, což je taky přechod ke složitějšímu. Napište mi někdo prosím obecně, proč ten za...... asp.net vlastně neumí pořádně ovládat objekt window a obchází se to pořád nějakými za...... Javascripty? Proč se nedá jednoduchým příkazem přímo v kódu VB otevírat okno v určité velikosti, zjišťovat jednoduše nastavené rozlišení u klienta, XY v odrolování atd?

Dík a zdravím

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepochopil jste, jak funguje ASP.NET, jinak byste se takhle nemohl zeptat. Nemůžete mixovat kód, který se spouští na serveru a který píšete ve VB.NET nebo v C#, s kódem, který se spouští ve webovém prohlížeči.

Cokoliv napsané ve VB.NET se spouští na serveru, vygeneruje to stránku, ta se převede do HTML a pošle se do prohlížeče. Teprve potom se spouští u klienta javascriptový kód.

Můžete si samozřejmě napsat vlastní třídu plnou funkcí, které generují javascripty, jež tyto věci na klientovi zařídí (např. zavolají alert, vytvoří nové popup okno). Takovéto knihovny již nepochybně existují a mnoho lidí je používá.

Vygenerování samotného javascriptu je ale jenom půlka celého pkolu, tento javascript musíte vložit do stránky na správné místo a odeslat na klienta. ASP.NET nemůže vědět, jestli tento kód ale chcete dát třeba do body.onload, nebo jestli má být v sekci head, nebo na začátku / na konci body případně ještě někde jinde. To prostě ASP.NET neví a jednoduše vědět nemůže. Proto to takhle jednoduše nejde zařídit, záleží vždy, co přesně od aplikace očekáváte.

A jinak serverový kód se provádí v normálním VB.NET, není možné, aby v ASP.NET dělala funkce MsgBox něco jiného než ve WinForms, pracujete se stejnými knihovnami a funkcemi. Osobně doporučuji MsgBox v ASP.NET vůbec nepoužívat, vyhazuje to akorát okno na serveru, což je v reálném nasazení hloupost, klient nic neuvidí a když admin přijde k serveru, bude muset potvrdit milion messageboxů. Nehledě na to, že IIS při použití funkce MsgBox vyhodí výjimku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Chápu, že to zkrátka nemá tu mojí logiku...

Jenže kdybych měl chápat a pamatovat si všechny ty toky řízení generace stránky v asp.netu, kdo a co z aspx-stránky zkompiluje, proč je to nejdříve do MSIL a kdy je v akci CLR, tak bych asi stále ještě pracoval na webu s názvem Hello world.

Pokud odesílá klient serveru změny stránky, stavy textboxů, buttonů a ví Bůh (a pár lidí z www.vbnet.cz) čeho ještě, tak snad by mohl poslat i vlastnosti (stav) toho objektu window a měl bych mít možnost se serveru pomocí VBnetu jednoduše zeptat i na to, v jakém rozlišení klient pracuje, ne? Zdá se mi to na tolik základní, že bych to rozhodně nehledal v nějaké třídě, kterou možná někdo někde spáchal. Proč mohu sdělit klientovi pomocí VBnetu, že se po kliknutí na hyperlink otevře odkaz v NOVÉM nebo ve STEJNÉM okně a už mu nemohu sdělit, v jak velkém okně to má být a místo toho musím klientovi osobně podsouvat nějaký script?

Nejsem školený automechanik asp.netu, ale přesto si myslím, že by řízení a jízda mohly být ještě o trochu pohodlnější.

Zdraví PS :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback