92 messaggi dal 27 aprile 2001
Ciao community,
mentre studio sto provando a far diventare una pagina aspx in un custom control in quanto ho necessità del riutilizzo della stessa in altre pagine:
la pagina in questione scrive i dati di un form su DB ed invia una email di conferma
<code>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SQLClient" %>
<%@ import Namespace="System.Web.Mail" %>
<html>
<head>
<script runat="server">

Sub Page_Load(Src as object, E as EventArgs)

pnlConfirm.Visible = False
End Sub

Sub btnSave_OnClick(Src as object, E as EventArgs)
Dim strSQL as String
Dim objConnection as SqlConnection
Dim objCommand as SqlCommand

If Page.IsValid Then

strSQL = ""
strSQL = strSQL & "INSERT INTO Utente "
strSQL = strSQL & "(Nome, Indirizzo, Localita, Provincia, Regione, Nazione, Azienda, Telefono, Fax, Email) " & vbCrLf
strSQL = strSQL & "VALUES ("
strSQL = strSQL & "'" & Nome.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Indirizzo.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Localita.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Provincia.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Regione.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Nazione.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Azienda.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Telefono.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Fax.Text & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & Email.Text & "'"
strSQL = strSQL & ");"

objConnection = New SqlConnection("Data Source=CETALFIO;" _
& "Initial Catalog=Form;User Id=test;Password=test;" _
& "Connect Timeout=15;Network Library=dbmssocn;")

objCommand = New SqlCommand(strSQL, objConnection)

objCommand.Connection.Open()
objCommand.ExecuteNonQuery()
objCommand.Connection.Close()

Try
Dim mail As New MailMessage
mail.From = "admin@email.com"
mail.To = "info@email.it"
mail.Subject = "Test invio ASP.NET"
mail.Body = "Prova invio da ASP.NET"
mail.BodyFormat = MailFormat.Html

mail.Priority = MailPriority.High
SmtpMail.SmtpServer="pop.dominio.it"
SmtpMail.Send(mail)


form1.visible = false

Catch exc As Exception
lblAvviso.Text = "Email non inviata a causa di un problema, riprova tra qualche secondo"
End Try

lblSQL.Text = strSQL
lblAvviso.Text = "Email inviata correttamente"
pnlConfirm.Visible = True
End If

End Sub

</script>
</head>
<body>
<form id="form1" summary="Form salva su DB e Invia Email" runat="server">
<table border="0">
<tbody>
<tr>
<td align="right">
<strong>Nome e cognome:</strong></td>
<td align="left">
<asp:TextBox id="Nome" runat="server" maxlength="10"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Indirizzo:</strong></td>
<td align="left">
<asp:TextBox id="Indirizzo" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Localita:</strong></td>
<td align="left">
<asp:TextBox id="Localita" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Provincia:</strong></td>
<td align="left">
<asp:TextBox id="Provincia" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Regione:</strong></td>
<td align="left">
<asp:TextBox id="Regione" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Nazione:</strong></td>
<td align="left">
<asp:TextBox id="Nazione" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Azienda:</strong></td>
<td align="left">
<asp:TextBox id="Azienda" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Telefono:</strong></td>
<td align="left">
<asp:TextBox id="Telefono" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Fax:</strong></td>
<td align="left">
<asp:TextBox id="Fax" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right">
<strong>Email:</strong></td>
<td align="left">
<asp:TextBox id="Email" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
&nbsp;</td>
<td>
<asp:Button id="btnSave" onclick="btnSave_OnClick" runat="server" Text="Save To Database"></asp:Button>
</td>
</tr>
</tbody>
</table>
</form>
<asp:Panel id="pnlConfirm" runat="server">
<h2>Salvataggio andato a buon fine
</h2>
<p>
<strong>Questi i parametri passati:</strong>
</p>
<pre><asp:Label id="lblSQL" runat="server"></asp:Label></pre>
<p></p>
<pre><asp:Label id="lblAvviso" runat="server"></asp:Label></pre>
</asp:Panel>
</body>
</html>
</code>

Ora le teoria, che per il momento ho acquisito ;-), vorrebbe che creassi un file vb poi da compilare in DLL e collocare sulla \bin della directory interessata, che importi le classi che mi servono per l'occasione, dalla mia analisi dovrebbero essere, sto ancora studiandoci su,
<code>
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Collections.Specialized
</code>

una volta importate le classi dovrei definire il mio namespace, la mia classe come pubblica ed effettuare il rendering della pagina con <code>Protected Overrides </code>
una cosa tipo questa:

<code>

Namespace Cetalfio

Public Class ModuloDavide
Inherits control
Protected Overrides Sub Render(writer As HtmlTextWriter)
................
End Sub
End Class
End Namespace

</code>

ora rispetto allo script iniziale mi perdo sulle attività che devono essere svolte nella fase di render della pagina, qualche indicazione?

Grazie Cetalfio
non ti comverrebbe usare un user control?


lo realizzi in minor tempo e se devi aggregare altri controlli sono più indicati


ciao marco
Modificato da nostromo il 22 novembre 2004 12.01 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
92 messaggi dal 27 aprile 2001
Ma il mio scopo è apprendere come realizzare correttamente un custom control ;-)

Cetalfio
ok allora io comincerei con togliere completamente la parte sql, e dotare il custom control di una propieta tipo DataSurce (che funzioni come tipo il datagrid ecc ecc) poi naturalmente non dovrai più scrivere il tag head, body cript ecc, ti consiglio di leggere tutti gli articoli in merito su aspitalia e poi dare un occhiata anche hai template

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.