Caricare messaggio di errore in alert con ASP.NET, C#, JavaScript

martedì 25 novembre 2008 - 11.29

Leonida Profilo | Junior Member

Ciao a tutti...rieccomi con un altro problemino,spero possiate aiutarmi. Ho scritto un form in ASP.NET e C#. Quando vengono caricati i dati dal form in un database, chiaramente viene sollevata un'eccezione se c'è un violazione del vincolo di chiave, eccezione gestita con un Try-Catch.

Il punto è che quando accade vorrei venisse aperta una finestra di errore lato client, che mostri le infromazioni sull'errore generato. Per farlo ho pensato di stampare il messaggio di errore in una casella di testo ASP.Net e caricare poi le informazioni in un alert tramite un semplice script javascript.

Il problema è che la casella di testo dovrebbe essere invisibile per ovvie ragioni, ma se resta tale, non viene letto il contenuto dallo script. L'alert lo usi nel modo seguente:-

alert(document.getElementById("TBTest").value);


balfaz Profilo | Expert

questa sarebbe una soluzione, toccando già un po di filosofia AJAX
http://www.dotnethell.it/forum/messages.aspx?ThreadID=25226

se hai dei problemi FAI UN'URLO, ....siamo sempre qui
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

Leonida Profilo | Junior Member

Ciao, beh in realtà contro Ajax ci ho già sbattuto la testa ieri, poi ho deciso di fare un passo indietro e studiare un po di javascript prima...cmq do un'occhiata al link, grazie...

balfaz Profilo | Expert

non ti preoccupare, se hai dei problema cerchiamo cosa fare, NON MOLLARE MAI!!!!!
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

Leonida Profilo | Junior Member

Ciao...allora, ho letto il tuo intervento nel link che mi hai dato e ho studiacchiato updatepanel che uso in concomitanza con contenttemplate. Da quel che ho capito in questo modo gli lementi contenuti in contenttemplate sono caricati lato server in modo asincrono dal resto del sito. Ho inserito campi e label nel contenttemplate e fin qui tutto bene.

Quando provo a usare modalpopupextender mi da dei problemi, non riconosce il tag, o meglio mi da questo errore: 'spazio dei nomi non riconosciuto cc1' ... da cosa può dipendere? Penso sia inutile chiederti una rapida spiegazione degli attributi se non posso usarlo...BAH!

balfaz Profilo | Expert

hai installato AjaxtoolKit (se usi vs2008 è già tutto compresso)
il controllo modalpopup richiede di avere questa libreria(Dll) dentro il tuo progetto, altrimenti guarda con quale TagPrefix (si trova all'inizio della pagina - markup) e usa quello
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

Leonida Profilo | Junior Member

Allora, sto lavorando sempre con visual studio 2005, ho installato ASP.NET AJAX Extensions 1.0 e il toolkit, ma sembra che qualsiasi cosa usi del tool cmq fa un casino...in pratica inizia a darmi problemi di compatibilità tra librerie e non mi riconosce i tag ajax inseriti.

Considera che ho scaricato e fatto l'installazione seguendo le indicazioni sul sito http://www.asp.net/ajax/ . Per quanto riguarda il toolkit però mi sembra sia scaricabile solo la versione 3.5 o una cosa simile, ma da quello che ho letto con le librerie extension per asp.net 2.0 dovrebbe cmq funzionare

balfaz Profilo | Expert

lo trovi anche per FW 2.0 leggi un po questo thread
http://www.dotnethell.it/forum/messages.aspx?ThreadID=26136

poi ti consiglio di fare attenzione con gli aggiornamenti che fai al progetto sopratutto se passerai al Vs2008 o cambi il framework, ma aldilà di quello organizza un po il tuo web.config e continua a postare i risultati di quello che ti accade cosi ci mettiamo a sistemarlo pian pianino

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

Leonida Profilo | Junior Member

Ok, per ora ho fatto, ho scaricato la versione del toolkit appropriata e ho seguito le indicazioni di installazione tratte dall'articolo al link http://www.futuresoftware.it/ConfigurazioneAjax.pdf. La versione per visual2005 del toolkit l'ho scaricata invece al link http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx?ReleaseId=8513 (riporto per i posteri, non si può mai sapere ).

Sembra funzioni tutto, penso mi accorgerò di ulteriori problemi andando avanti con lo sviluppo. Riguardo la portabilità ti dirò...in pratica avrei dovuto lavorare con VS2008 su un progetto implementato in VS2005. Chiaramente per quanto la MS affermi la massima portabilità dei progetti da una versione alla successiva di VS, così non è, di fatto ho dovuto installare VS 2005 che il setup mi ha installato in una directory VS2008 e in un paio di altre locazioni del file system!!!!Bah! .

Vabbè, ora mi metto a lavoro...nel caso lascio il thread aperto, non si può mai sapere .

Leonida Profilo | Junior Member

> E rieccomi qui...allora, ho scritto questa porzione di codice:

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

> <asp:UpdatePanel ID="UDPMsg" runat="server">
> <ContentTemplate>
> <div id="DError">
> <asp:Label runat="server" ID="LNome">errore:</asp:Label>
> <asp:TextBox runat="server" ID="TBError"></asp:TextBox>

> <asp:Button runat="server" ID="BSend" Text="Send" OnClick="BSend_Click" />
> </div>
> </ContentTemplate>
> </asp:UpdatePanel>

> <ajaxToolkit:ModalPopupExtender ID="MPEError" runat="server" TargetControlID="TBError" PopupControlID="DError" DropShadow="true">
> </ajaxToolkit:ModalPopupExtender>

>Mi da l'errore: "An extender can't be in a different UpdatePanel than the control it extends", però se lo metto nell UpdatePanel mi da un errore in >compilazione: "Il tipo 'System.Web.UI.UpdatePanel' non ha proprietà pubbliche denominate 'ModalPopupExtender' "...allora ho pensato di metterlo >nel ContentTemplate, ma mi compare una pagina vuota...

Ok, mi rispondo da solo, in pratica in DError dev'essere incluso solo l'aspetto della ModalPopupExtender, il tag su cui effettuare il controllo dev'essere esterno. Se può interessare, sempre ai posteri, nella guida MSDN c'è una descrizione chiarissima del tag: http://msdn.microsoft.com/it-it/magazine/cc164247.aspx .


Leonida Profilo | Junior Member

Ok, ci siamo quasi...ora ho un altro dilemma da risolvere...se imposto il controllo della modalpopupextender su una textbox, è sufficiente puntare il cursore al suo interno per aprire la finestra sul client, però se la casella è riempita automaticamente, per esempio in seguito alla pressione di un pulsante, non viene rilevato nulla e la finestra non si apre. Devo impostare qualche parametro?

Avevo pensato di risolverla tramite C#, forzando l'apertura della finestra, oppure verificando una particolare condizione prima di aprirla, ma non saprei quali metodi usare...

balfaz Profilo | Expert

scusa il ritardo, purtroppo il fatto che sia un popup lato client non toglie che deva esistere il postback della pagina, , è deludente vero, ma per adesso è cosi, quindi devi valutare l'evento giusto per eseguire logicamente e non forzatamente questo M_Popup, comunque ... hai visto che bello ch'è AJAX
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

Leonida Profilo | Junior Member

Bah direi che vale la pena studiarlo solo per le ModalPopupExtender ...

balfaz Profilo | Expert

ja, ja, ja.
più capisci questa tecnologia, più voglia avrai d'usare tante altre cose FIDATI , a me è successo cosi
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5