PDA

View Full Version : [AspNet/C#] DataList


Dyd87
20-06-2010, 17:25
Salve ragazzi
Ho una datalist popolata con i valori presi con una query da un database.
All'interno di ogni riga della datalist ho un bottone che , se premuto , deve restituirmi (permettermi di salvare) un valore contenuto in un campo del mio elemento.
Ho trovato questo codice in giro , solo che non mi funziona.
Non entra nemmeno nella parte di codice in questione




public partial class DvdA_C : System.Web.UI.Page
{
String strConn, strSQL;
OleDbConnection Conn;
OleDbCommand Cmd;
string User;

protected void Page_Load(object sender, EventArgs e)
{

}

//Gestore Eventi DataList
public event DataListCommandEventHandler ItemCommand;

//private void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

void Item_Command(Object sender, DataListCommandEventArgs e)
{
if (e.CommandName == "add")
{
string appo = e.Item.FindControl("Cod_Prod").ToString();
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) VALUES ('Carlo','"+appo+"');";
Cmd = new OleDbCommand(strSQL, Conn);
Conn.Open();
Cmd.ExecuteNonQuery();
Conn.Close();

}
}


La pagina che contiene questo codice è inserita in una master page , potrebbe essere questo un problema?
Di visibilità?
Io non credo...

Il fatto è che , se eseguito , il browser neanche lo vede quel pezzo di codice , se premo il bottone(che ha come command nome "add" , per l'appunto).

Grazie mille

Dyd87
20-06-2010, 17:44
Ho scoperto il perchè non entrasse , un problema di definizione...
Ora però nella prima riga

string appo = e.Item.FindControl("Cod_Prod").ToString();

Mi dice che Cod_Prod non esiste , quando in realtà è un campo del database da me analizzato.

Dyd87
20-06-2010, 19:24
Risolto anche quel problema , dovevo inserire il nome dell'etichetta contentente il valore.
Ora però mi dice che l'oggetto si esiste , ma non ha nessun valore al suo interno!



appo = ((Label)e.Item.FindControl("Label4")).ToString();



Non so che pesci prendere :confused:

tomminno
21-06-2010, 08:38
Sarà che forse a te interessa:


string appo = ((Label)e.Item.FindControl("Label4")).Text;

Dyd87
21-06-2010, 10:44
Sarà che forse a te interessa:


string appo = ((Label)e.Item.FindControl("Label4")).Text;


Proverò , grazie ;)

Edit: Funziona.

"Birra per il signore :D"