Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206

    [VB.NET] ABC - Concetto base il FORM

    Salve a tutti

    Confesso che non riesco proprio a ritrovarmi.
    Mi chiarite un concetto così per fare un pò di chiarezza nella mia testa.
    Come si realizza un form che invia dei dati ad un codice che li inserisce in una tabella di un db?
    E' evidente che sono interessato alla logica o quanto meno a verificare se ho ben compreso (penso di no, ho una confusione).
    Ho una pagina che possiamo chiamare prendi.aspx con un form così struttura:
    "
    <form action="inserisci.aspx" method="post" runat="server">
    <ASP:Texbox Id="Nome" runat="server"/>
    <ASP:Texbox Id="Congnome" runat="server"/>
    <ASP:Texbox Id="Residenza" runat="server"/>
    </form>
    "

    prima domanda posso inviare i dati alla pagina inserisci.aspx?
    Oppure posso inviare i dati alla stessa pagina prendi che poi dopo aver fatto dei controlli inserisce i dati e rimanda ad una nuova pagina?
    Come recupero i dati? con Request.Form?

    Grazie
    Cordialità Donaz

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    puoi fare quello che vuoi.
    il metodo "nativo" è usare il page load prendendo i dati dagli id dei tag (nome, cognome, residenza) e sfruttare la loro proprietà text per risalire a cio' che ha scritto l'utente.
    tutto cio' che ti serve e' un <asp:button che effettui il postback...

  3. #3
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Esempio pratico:

    Ho preparato una pagina che è composta da diversi webforms al suo interno ho inserito dei textbox, e listbox per poter recupere dei dati. Ho attivato per tutti la proprietà AutoPostBack a true vi riporto un estratto del listato:


    <%@ Page Language="vb" Debug="true" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.OleDb" %>
    <script runat="server">

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    If Not Page.IsPostBack Then
    Dim recupero as Integer = Request.QueryString("comune")

    Dim strConngio As String .......
    ......

    End If
    End Sub
    Sub EnterBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim codifisc As string

    ........

    End Sub

    </script>
    <html>
    <head>
    <title> Inserimento scheda anagrafica contribuente</title>
    <!--
    importiamo le librerie per le connessioni con access2000
    --><% @Import Namespace="System.Data" %><% @Import Namespace="System.Data.OleDb" %>
    </head>
    <body text="navy" bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

    <table style="FONT: 10pt verdana" cellpadding="10" width="60%" align="center">
    <tbody>

    ......

    <form id="Form1" action="anadic.aspx" method="post" runat="server">
    <table style="FONT: 10pt verdana" cellpadding="10" width="60%" align="center">
    <tbody>
    <tr>
    <td style="WIDTH: 24%" align="middle">
    </td>
    <td style="WIDTH: 79%; text-align: left;" align="middle">
    Codice Fiscale
    </td>
    <td style="WIDTH: 31%" align="middle">
    <ASP:Textbox id="codfisc" runat="server" AutoPostBack="true"></ASP:Textbox>
    </td>
    <td style="WIDTH: 10%" align="middle">

    </td>
    </tr>
    <tr>
    <td style="WIDTH: 24%" align="middle">
    </td>
    <td style="WIDTH: 79%; text-align: left;" align="middle">
    Nome
    </td>
    <td style="WIDTH: 31%" align="middle">
    <ASP:Textbox id="Nome" runat="server" AutoPostBack="true"></ASP:Textbox>
    </td>
    <td style="WIDTH: 10%" align="middle">

    </td>
    </tr>
    <tr>
    <td style="WIDTH: 24%" align="middle">
    </td>
    <td style="WIDTH: 79%; text-align: left;" align="middle">
    Cognome
    </td>
    <td style="WIDTH: 31%" align="middle">
    <ASP:Textbox id="Congnome" runat="server" AutoPostBack="true"></ASP:Textbox>
    </td>
    <td style="WIDTH: 10%" align="middle">

    </td>
    </tr>
    </tbody>
    </table>
    ......

    </table>
    </form>

    </body>
    </html>

    Per recuperare i dati che vengono inviati dopo la pressione del tasto conferma posso usare nella sub dove è gestito il postback la request.form? Cos' come indicato sotto:

    Sub EnterBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim codifisc As string
    codfisc = request.form("codifisc")
    End Sub

    Se invece il recupero non deve avvenire così come devo fare?
    Altra domanda leggendo un articolo di Daniele Bocchino su Web Form e Web Controls mi è rimasto ho una perplessità devo importare il namespace System.Web.UI.WebControls?

    Grazie.
    Cordialità Donaz

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    li recuperi nella tua Sub con, ad esempio:

    codice:
    codfisc.text
    (non c'e' bisogno nè dell'autopostback a true, nè dell'action della form, con un controllo che produce un postback -come il pulsante- invia i dati a se stessa di default...)

    Riguardo le importazioni dei namespace, per poter scrivere nel tuo codice

    codice:
    Dim tbNome as New TextBox
    Devi assicurarti di importare il NameSpace System.Web.UI.WebControls. Nelle classi WebForms fa parte di quelli importati di default...Altrimenti devi riferirti al percorso completo :

    codice:
    Dim tbNome as New System.Web.UI.WebControls.TextBox

  5. #5
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Per il recupero dei dati del form ho fatto così:

    Sub EnterBtn_Click(ByVal sender As Object, ByVal e As EventArgs)

    'i primi tre sono dei textbox
    Dim codfisc As string
    codfisc = Request("codfisc").ToString()
    Dim nome As string
    nome = Request("nome").ToString()
    Dim cognome As string
    cognome = Request("cognome").ToString()

    'questo è invece un listbox è corretto utilizzare lo stesso metodo?
    Dim lstgiorno As string
    lstgiorno = Request("codfisc").ToString()

    End Sub

    Domanda:
    il recupero è sempre o è diverso tra textbox, textarea, listbox, radio o ceckbox?

    L'autopostback e l'action della form se sono superfli perchè esistono?
    Cordialità Donaz

  6. #6
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    L'attività di recupero dei dati dal form come l'ho impostata io è funzionante, mi chiedo se c'è differenza tra quella che mi suggerisci tu.

    Cosa vuoi dire con questa istruzione?

    Dim tbNome as New TextBox

    posso utilizzarla in questo modo:

    Dim codfisc As New TextBox
    codfisc = Request("codfisc").ToString()

    oppure è sbagliato?

    Il namespace l'ho dichiarato in testa di pagina.
    Cordialità Donaz

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    è corretto, ma ti conviene slegarti un po' dalla mentalità "asp3.0-style" ed effettuare i recuperi con la proprietà text del controllo...

    il recupero del valore non è sempre uguale per tutte le tipologie di controllo.
    Per la famiglia dei controlli che contengono "figli-items" (cioè una ListItemCollection), come:

    <asp:dropdownlist ...
    <asp:listbox ...

    il discorso è un po' diverso, rilevi l'elemento selezionato con SelectedItem e le sue proprietà

    Approfondisci con
    questo
    link ...

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
    Dim codiceFiscale as String = codFisc.Text
    oppure

    codice:
    dim tbcodfisc as new textbox
    tbcodfisc.text = codfisc.text

    Dim codfisc As New TextBox
    codfisc = Request("codfisc").ToString()
    è sbagliato perche' stai associando una stringa ad un oggetto...devi riferirti alla sua proprieta' text.

  9. #9
    Utente di HTML.it L'avatar di donaz
    Registrato dal
    Jan 2002
    Messaggi
    206
    Fissiamo un punto che è questo:

    Struttura FORM

    "
    <%@ Page Language="vb" Debug="true" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.OleDb" %>
    <%@ import Namespace="System.Web.UI.WebControls" %>

    Sub EnterBtn_Click(ByVal sender As Object, ByVal e As EventArgs)

    Dim codicefiscale As New textbox
    codicefiscale.text = codfisc.text

    End Sub

    ....
    <form id="Form1" method="post" runat="server">
    <td style="WIDTH: 79%; text-align: left;" align="middle">
    Codice Fiscale
    </td>
    <td style="WIDTH: 31%" align="middle">
    <ASP:Textbox id="codfisc" runat="server" AutoPostBack="true"></ASP:Textbox>
    </td>

    ....

    <td style="width: 100%">
    <asp:button id="Button1" onclick="EnterBtn_Click" runat="server" Height="23px" text="Conferma"></asp:button>
    </td>

    ....
    "

    Questo esempio costruisce un form composto da un solo campo, quando viene immesso qualcosa in quel campo e si conferma il dato questo viene memorizzato nella variabile codicefiscale.
    Giusto?
    Per poter operare su questo dato, ad esempio scriverlo in una tabella del db, devo sempre riferirmi alla sua proprietà text?
    Cordialità Donaz

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    No, nell'esempio hai costruito una nuova textbox (che fa capo ad una classe, e non e' una semplice variabile quindi...), ma questo oggetto e' abbastanza inutile (te l'avevo citato per esempio), a meno che tu non voglia aggiungerlo sulla pagina successivamente...

    Per prendere il valore digitato nella textbox codFisc devi semplicemente fare cosi:

    codice:
    <%@ Page Language="vb" Debug="true" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.OleDb" %>
    <%@ import Namespace="System.Web.UI.WebControls" %>
    
    Sub EnterBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
    
    Dim tua_Variabile_Per_Poi_Farne_Quello_Che_Vuoi as String = codfisc.text
    
    End Sub
    
    <form id="Form1" method="post" runat="server">
    <td style="WIDTH: 79%; text-align: left;" align="middle">
    Codice Fiscale
    </td>
    <td style="WIDTH: 31%" align="middle">
    <ASP:Textbox id="codfisc" runat="server"></ASP:Textbox>
    </td>
    
    <td style="width: 100%">
    <asp:button id="Button1" onclick="EnterBtn_Click" runat="server" Height="23px" text="Conferma"></asp:button>
    </td> 
    ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.