Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111

    [ASP.NET VB] Tasto Invio

    Ciao a tutti,
    ho un piccolo problema nell'intercettare la pressione del tasto invio.
    Nella mia pagina costruisco una DetailsView dinamica, leggendo i campi da un file xml. Quando premo il tasto invio dovrebbe effettuare l'inserimento dei dati della form, invece mi effettua solo un refresh della stessa pagina. Vorrei sapere come fare a fargli prendere la pressione del tasto, o anche semplicemente dove dirgli di catturarlo...
    Ecco un po' di codice:

    codice:
    <asp:TableCell id="cDett" runat="server" verticalalign="middle" visible="true" width="100%" horizontalalign="Left">
        <table border="0">
        <tr style="background-color:White;font-size:Smaller;white-space:nowrap;">
            <td style="background-color:White;font-weight:bold;white-space:nowrap;"><asp:Literal ID="Literal1" runat="server" Text='Utc Site Code'></asp:Literal></td>
            <td> 
            <asp:DropDownList id="DropdownList1" runat="server" cssclass="formvari" autopostback="true"></asp:DropDownList>
            <asp:sqldatasource id="sourceProva" runat="server" connectionstring="<%$ ConnectionStrings:ConnString%>" selectcommand="SELECT 'Country: ' + Site_country + ', Business Entity: ' + Site_BE + ', City: ' + Site_City + ', Address: ' + Site_Address AS Colonna FROM [Dda_Sites] WHERE site_id = @site_id">
                <selectparameters>
                    <asp:controlparameter name="site_id"  controlid="DropDownList1" propertyname="SelectedValue" />
                </selectparameters>
            </asp:sqldatasource>
            </td>
            
            <td valign="middle">
                <asp:listbox id="ListBox1" runat="server" datasourceid="sourceProva" datatextfield="Colonna" borderwidth="0" borderstyle="none" height="24px" onkeyup="submitOnInvio()"></asp:listbox>
            </td>
        </tr>
        </table>
        <div align="center">
            <asp:Label id="lblErrorFooter" runat="server" Text="" Font-Bold="true" ForeColor="Red"></asp:Label>
        </div>
        
        <asp:DetailsView id="grdSummaryDett"  runat="server" height="50px" cellpadding="4" cellspacing="2" forecolor="#333333" gridlines="None" datasourceid="SqlDataSource2">
            <footerstyle cssclass="testonormalebianco" backcolor="#87A2CD" />
            <rowstyle backcolor="#EFF3FB" font-size="Smaller" wrap="false" />
            <editrowstyle backcolor="#FFFFFF" wrap="false" />
            <headerstyle cssclass="testonormalebianco" backcolor="#87A2CD" wrap="false" />
            <alternatingrowstyle backcolor="White" wrap="false" />
            <commandrowstyle backcolor="#D1DDF1" font-bold="True" />
            <fieldheaderstyle backcolor="#FFFFFF" font-bold="True" wrap="false" />
            <fields>
                <asp:CommandField showdeletebutton="True" showeditbutton="True" showinsertbutton="True" buttontype="Image" cancelimageurl="~/images/reset.gif" deleteimageurl="~/images/delete.gif" editimageurl="~/images/update.gif" insertimageurl="~/images/insert.gif" newimageurl="~/images/insert.gif" updateimageurl="~/images/save.gif" ItemStyle-HorizontalAlign="Center" />
            </fields>
            <footertemplate>
                <asp:ImageButton id="Cancel" runat="server" imageurl="~/images/cancel.gif" onclick="Cancel_Click" />
            </footertemplate>
            <emptydatatemplate>
            </emptydatatemplate>
        </asp:DetailsView>
        <asp:SqlDataSource id="SqlDataSource2" runat="server" connectionstring="<%$ ConnectionStrings:ConnString_User %>" conflictdetection="CompareAllValues" deletecommand="DELETE FROM [Dda] WHERE [id] = @original_id" insertcommand="INSERT INTO [Dda] ([id], [type]) VALUES (@id, @type)" selectcommand="SELECT * FROM [dda] WHERE ([id] = @id)" updatecommand="UPDATE [Dda] SET [type] = @type WHERE [id] = @original_id" oldvaluesparameterformatstring="original_{0}">
            <DeleteParameters></DeleteParameters>
            <UpdateParameters></UpdateParameters>
            <InsertParameters></InsertParameters>
            <SelectParameters>
                <asp:ControlParameter controlid="grdSummaryCols" name="id" propertyname="SelectedValue" type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>
    </asp:TableCell>
    Recupero anche la pressione del tasto con
    codice:
    function submitOnInvio(){
                if(event.keyCode==13){
                    <nomebottone>.click();
                }
    ma non cambia nulla...

    Grazie dell'aiuto

  2. #2
    quando premi sul tasto New che viene generato automaticamente, passi in edit mode. Quando dopo aver inserito i dati premi il tasto update puoi (tra le altre cose) intercettare alcuni eventi es. iteminserting.

    Maggiori info comunque nella documentazione es.
    http://msdn2.microsoft.com/en-us/library/keezbt7k.aspx
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    facendo in questo modo devo quindi gestire la pressione del tasto invio via codice vb quindi... che funzione devo usare?? cercando un po' in giro ho trovato esempi solo come questo:
    codice:
    Private Sub grdSummaryDett_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
    if e.KeyCode = Keys.Return Then
        MsgBox("Hai premuto -Invio-")
    ElseIf e.KeyCode = Keys.Return Then
        MsgBox("Hai premuto -A-")
    End If
    End Sub
    che però a me vanno in errore perchè non mi riconosce la classe...

  4. #4
    Originariamente inviato da t30n3
    facendo in questo modo devo quindi gestire la pressione del tasto invio via codice vb quindi...
    E' normale dover gestire con del codice lato server l'inserimento di un record in un db. Asp.net 2.0 invece ci riduce la fatica e crea automaticamente il codice necessario per fare insert update e delete. Basta guardare il codice che ai postato e notare come i comandi sql sono gia' scritti. Mancano i parametri e poco altro.
    cercando un po' in giro ho trovato esempi solo come questo:
    ...
    che però a me vanno in errore perchè non mi riconosce la classe...
    e ci credo... l'esempio mi sembra non appartenere al mondo web ma semmai ad una destop application. Non cercare "come gestire il click di un pulsante" ma cerca semmai "come utilizzare il controllo detailsview" su msdn.microsoft.com
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    ora cerco un po'...
    se qualcuno ha già qualche idea però mica le rifiuto

  6. #6
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    ho provato a mettere l'onkeypress nel detailsview e richiamare una funzione javascript, ma a questo punto se metto ad esempio form.submit() non mi effettua il submit, e se metto invece <nomebottone>.click() non mi riconosce il nome del bottone.... qualcuno mi aiuti!!!

  7. #7
    Originariamente inviato da t30n3
    .... qualcuno mi aiuti!!!
    ...se posti il codice forse e' meglio
    Saluti a tutti
    Riccardo

  8. #8
    Utente di HTML.it L'avatar di t30n3
    Registrato dal
    Jun 2005
    Messaggi
    111
    la costruzione della pagina è la stessa come sopra... ho aggiunto questa funzione javascript:
    codice:
    function chkEnterKey(){
                if(event.keyCode==13){
                    window.alert("tasto invio premuto")
                    grdSummaryDett$ctl06.click();
                    //form1.submit();
                }
            }
    ho commentato il submit perché tanto non me lo fa, e il valore "grdSummaryDett$ctl06" è il nome che viene assegnato al bottone di insert (l'ho visto nell'html generato).
    La funzione è scatenata da un onkeypress="chkEnterKey()", che ho provato e funziona.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.