PDA

View Full Version : [AspNet/C#] MsgBox


Dyd87
21-06-2010, 12:14
Salve ragazzi

Sto utilizzando Visual Studio Web Developer con C# e vorrei utilizzare un Msgbox , solo che il classico


System.Windows.Form ecc...


Non esiste!
O meglio , non esiste la sottocategoria Form.
Che fare?

tomminno
21-06-2010, 12:29
Ovvio che non esiste. System.Windows.Form è la libreria grafica per applicativi desktop.
Per un "message box" dorvai usare i javascript con le funzioni alert o confirm se ti serve qualcosa di semplice, altrimenti le soluzioni sono molteplici se vuoi qualcosa di più versatile e complesso.

Dyd87
21-06-2010, 14:18
Ovvio che non esiste. System.Windows.Form è la libreria grafica per applicativi desktop.
Per un "message box" dorvai usare i javascript con le funzioni alert o confirm se ti serve qualcosa di semplice, altrimenti le soluzioni sono molteplici se vuoi qualcosa di più versatile e complesso.

C'era qualcosa che non tornava quindi :D
Si , mi serve qualcosa di estremamente semplice , giusto per far sapere all'utente che ha toppato :p

Dyd87
21-06-2010, 14:44
Ho trovato questo in giro per la rete:


public static void ShowMessage(Page aPage, string aMessage)
{
aPage.RegisterStartupScript("AlertMsg", "<script language='javascript'> alert('" + aMessage + "'); </script>");
}

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if ((e.CommandName == "add") && ((Session["Username"]) != null))
{
string appo = ((Label)e.Item.FindControl("Label4")).Text;

strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("Lam - Copia.mdb") + ";";
Conn = new OleDbConnection(strConn);
User = Convert.ToString(Session["Username"]);
strSQL = "INSERT INTO Acquisti(Username,Cod_Prod,Quantita) VALUES (" + User + "," + appo + ",1);";
Cmd = new OleDbCommand(strSQL, Conn);
Conn.Open();
Cmd.ExecuteNonQuery();
Conn.Close();


}
else
{

ShowMessage(, "Errore");

}



Non so cosa scrivere su ShowMessage , visto che lui si aspetta un parametro Page...
Ho tentato di inserire il nome della pagina , nulla.

astorcas
21-06-2010, 14:56
Ho trovato questo in giro per la rete:


public static void ShowMessage(Page aPage, string aMessage)
{
aPage.RegisterStartupScript("AlertMsg", "<script language='javascript'> alert('" + aMessage + "'); </script>");
}

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if ((e.CommandName == "add") && ((Session["Username"]) != null))
{
string appo = ((Label)e.Item.FindControl("Label4")).Text;

strConn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("Lam - Copia.mdb") + ";";
Conn = new OleDbConnection(strConn);
User = Convert.ToString(Session["Username"]);
strSQL = "INSERT INTO Acquisti(Username,Cod_Prod,Quantita) VALUES (" + User + "," + appo + ",1);";
Cmd = new OleDbCommand(strSQL, Conn);
Conn.Open();
Cmd.ExecuteNonQuery();
Conn.Close();


}
else
{

ShowMessage(, "Errore");

}



Non so cosa scrivere su ShowMessage , visto che lui si aspetta un parametro Page...
Ho tentato di inserire il nome della pagina , nulla.

"this" è di tipo Page:


ShowMessage(this, "Errore");


Cmq il metodo funziona ma è obsoleto, riceverai un warning

Dyd87
21-06-2010, 15:00
Grazie innanzitutto.
Ne conosci uno meno obsoleto?

astorcas
21-06-2010, 15:06
Grazie innanzitutto.
Ne conosci uno meno obsoleto?

sostituisci


aPage.RegisterStartupScript("AlertMsg", "<script language='javascript'> alert('" + aMessage + "'); </script>");



con



aPage.ClientScript.RegisterStartupScript(aPage.GetType(),"AlertMsg", "<script language='javascript'> alert('" + aMessage + "'); </script>");



edit: ho messo aPage.RegisterStartupScript invece di RegisterStartupScript

tomminno
21-06-2010, 15:11
Grazie innanzitutto.
Ne conosci uno meno obsoleto?

Page.ClientScript.RegisterClientScriptBlock

PS Sono arrivato tardi...

Dyd87
21-06-2010, 15:15
Che parametri dovrò quindi utilizzare nel richiamo, con la nuova istruzione?

astorcas
21-06-2010, 15:21
Che parametri dovrò quindi utilizzare nel richiamo, con la nuova istruzione?

scusa, ho dimenticato un particolare che ho corretto nel post precedente.
I parametri saranno i soliti. :)

Dyd87
21-06-2010, 15:24
Grazie mille ad entrambi , molto disponibili ;-)

Dyd87
21-06-2010, 15:48
Domandina: come posso gestire il titolo del Msgbox?
Vorrei sostituire la scritta "Pagina C:\ ecc..ecc.."

tomminno
21-06-2010, 15:55
Domandina: come posso gestire il titolo del Msgbox?
Vorrei sostituire la scritta "Pagina C:\ ecc..ecc.."

Non è possibile modificare il title della finestra di alert o confirm.
Se vuoi impostare il titolo devi ricorrere ad una implementazione custom.

Un esempio potrebbe essere questo:
http://slayeroffice.com/code/custom_alert/

Dyd87
21-06-2010, 15:57
Non è possibile modificare il title della finestra di alert o confirm.
Se vuoi impostare il titolo devi ricorrere ad una implementazione custom.

Un esempio potrebbe essere questo:
http://slayeroffice.com/code/custom_alert/

Capito , grazie.
Quindi dovrei ricorrere a qualcosa di custom anche in caso di inputbox ecc...