Salve, volevo sapere come faccio ad fare un controllo se e stato modificato un textbox,
In poche parole se io lascio intatto quello che c'è scritto dentro la textbox , lui non controllo i dopioni,
ma se io cambio qualcosa allora verifica se c'è già nel db e da errore.
vi posto il codice:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" validateRequest="false" %><%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.Odbc" %><%@ Import Namespace="System.Configuration" %><script runat="server"> String connectionString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; Funzioni ut = new Funzioni(); private void popola() { try { OdbcConnection objConn = new OdbcConnection(connectionString); string sSQL = "SELECT * FROM users WHERE UsersId=?"; objConn.Open(); OdbcCommand objCommand = new OdbcCommand(sSQL, objConn); objCommand.Parameters.AddWithValue("?", Session["UserId"]); OdbcDataReader rdr = objCommand.ExecuteReader(); if (rdr.Read()) { txtUsername.Text = rdr["_username"].ToString(); txtEmail.Text = rdr["_email"].ToString(); ddNL.SelectedValue = rdr["nl"].ToString(); } rdr.Close(); objConn.Close(); } catch (Exception ex) { lblMsg.Text = "" + ex.ToString() + ""; } } public bool isNickEmailInUso(string Email) { OdbcConnection conn = new OdbcConnection(connectionString); OdbcCommand checkUser = new OdbcCommand("SELECT COUNT(*) FROM users WHERE _email=?", conn); conn.Open(); checkUser.Parameters.AddWithValue("?", Email); int rows = Convert.ToInt32(checkUser.ExecuteScalar()); conn.Close(); checkUser.Dispose(); return (rows > 0); } protected void btnEdit_Click(object sender, EventArgs e) { try { OdbcConnection objConn = new OdbcConnection(connectionString); string nickemail = txtEmail.Text; if (isNickEmailInUso(nickemail) == true) { // Imposto la visualizzazione dell'errore che il nickname è già in uso lblMsg.Text = "Email esistente"; } else { string sSQL = "UPDATE users set _username=?,"; sSQL = sSQL + "_email=?,"; sSQL = sSQL + "nl=?"; sSQL = sSQL + "WHERE UsersId=?"; objConn.Open(); OdbcCommand cmd = new OdbcCommand(sSQL, objConn); cmd.Parameters.AddWithValue("?", txtUsername.Text); cmd.Parameters.AddWithValue("?", txtEmail.Text); cmd.Parameters.AddWithValue("?", ddNL.SelectedItem.Text); cmd.Parameters.AddWithValue("?", "" + Session["UserId"] + ""); cmd.ExecuteNonQuery(); objConn.Close(); } } catch (System.Exception exc) { lblMsg.Text = "" + exc.ToString() + ""; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) if (Session["UserLogged"] == null) { Panel1.Visible = false; Label1.Text = "Non sei autenticato"; } else { Panel1.Visible = true; popola(); } } </script><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:Panel ID="Panel1" runat="server"><table width="100%" border="0"> <tr align="center"> <td width="25%"> </td> <td style="width:52%;"> <asp:Label ID="lblMsg" runat="server"></asp:Label> </td> <td width="75%"> </td> </tr> <tr> <td>Username</td> <td style="width:52%;"> <asp:TextBox ID="txtUsername" runat="server" ReadOnly="True" Width="499px"></asp:TextBox> </td> <td> </td> </tr> <tr> <td width="25%"> Email</td> <td style="width:52%;"> <asp:TextBox ID="txtEmail" runat="server" ReadOnly="True" Width="499px"></asp:TextBox> </td> <td width="75%"> </td> </tr> <tr> <td>NewsLetter</td> <td style="width:52%;"> <asp:RadioButtonList ID="ddNL" runat="server"> <asp:ListItem>N</asp:ListItem> <asp:ListItem>Y</asp:ListItem> </asp:RadioButtonList> </td> <td> </td> </tr> <tr> <td> </td> <td style="width:52%;"> <asp:Button ID="btnEdit" runat="server" Text="Modifica" onclick="btnEdit_Click" ValidationGroup="All" style="height: 26px" /></td> <td> </td> </tr> </table> </asp:Panel> </asp:Content>
nessuno?
Ciao Luigi,
l'evento TextChanged esposto dal controllo TextBox ti può tornare utile:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textchanged.aspx
-- Matteo BagliniWeb: http://www.makesimple.net/Blog: http://blogs.ugidotnet.org/bmatte
è come si usa?.
mi protesti farmi un esempio?.
grazie mille.
ciao.
dico l'esempio con il mio codice per favore...
grazie.
Ciao!
Nel link che ti ha indicato Matteo trovi anche un esempio di utilizzo. Prova a partire da lì...
Marco Minerva [MCPD], marco.minerva@dotnettoscana.orghttp://blogs.ugidotnet.org/marcom