ah ops![]()
ora finalmente riesco a vedere la pagina solo la ddl non viene compilata...![]()
ah ops![]()
ora finalmente riesco a vedere la pagina solo la ddl non viene compilata...![]()
ste
Come fai a vedere la pagina senza che la dll sia compilata??
Kalman
il problema è che non entra qui dentro:
if ((e.Item.ItemType==ListItemType.AlternatingItem) || (e.Item.ItemType==ListItemType.Item)){
if (! (e.Item.FindControl("Dropdownlist")==null)){
}}
nel secondo if
ste
risolto il problema è che al posto di "DropDownList" dovevo scrivere l'id della ddl
if (! (e.Item.FindControl("ddlFunz")==null))
grazie mille![]()
![]()
![]()
![]()
ste
Ma come hai scritto la ricerca del controllo????
if (e.Item.FindControl("Dropdownlist") !=null){}
Praticamente gli facevi fare la cosa al rovescio!!!!
Ciao
K
Kalman
vabbè piccolo errore![]()
avevo copiato tutto il codice che mi avevi scritto senza capire che faceva![]()
ora però ho capito :maLOL:
ste
ehm ehm altro piccolo problemino...
dovrei far selezionare in automatico il campo se questo è già presente nel db.
Ho scritto questo codice:
il problema è che mi legge solo il primo record perchè se faccio Response.Write(dr.GetValue(0).Tostring());private void ItemDataBind (object sender, DataGridItemEventArgs e)
{
if ((e.Item.ItemType==ListItemType.AlternatingItem) || (e.Item.ItemType==ListItemType.Item))
{
if (! (e.Item.FindControl("ddlFunz")==null))
{
DropDownList ddl=((DropDownList)e.Item.FindControl("ddlFunz"));
int actId=Convert.ToInt32(Session["actId"]);
string query_ddl="Select QpaOwnId,AnaLnm from Ana, Qpa where Qpa.QpaAnaId=Ana.AnaOwnId and QpaActId="+ actId;
SqlCommand cmd = new SqlCommand(query_ddl,conn);
conn.Open();
ddl.DataSource = cmd.ExecuteReader();
ddl.DataValueField = "QpaOwnId";
ddl.DataTextField = "AnaLnm";
ddl.DataBind();
conn.Close();
//questa è la parte che ho aggiunto
int i;
for (i=0;i<DataGrid2.Items.Count;i++)
{
int anaId=Convert.ToInt32(DataGrid2.Items[i].Cells[3].Text);
string selezione="Select QpaOwnId from Qpa where QpaAnaId="+ anaId +" and QpaActId="+ actId;
SqlDataReader dr;
SqlCommand cmd_sel=new SqlCommand(selezione,conn);
conn.Open();
dr=cmd_sel.ExecuteReader();
if(dr.Read()==true){
ddl.SelectedValue=dr.GetValue(0).ToString();
}
conn.Close(); }}}}
mi restituisce solo un valore come se non facesse il for
ste
ItemDataBind viene richiamata una volta per ogni riga della griglia!
Non puoi settare il valore per tutte le dropdown che hai.. ma lo puoi fare per una alla volta.
Spero di essere stato chiaro...
Ciao
Kalman
Kalman
ok quindi per ogni riga dovrei fare il controllo sul db...
quindi al posto del for dovrei mettere esattamente il numero della riga
Come faccio a sapere in quale riga mi trovo?
ste
dovrei riuscire a recuperare l'id che è contenuto nella colonna 3 solo che se scrivoprivate void ItemDataBind (object sender, DataGridItemEventArgs e)
{
if ((e.Item.ItemType==ListItemType.AlternatingItem) || (e.Item.ItemType==ListItemType.Item))
{
if (! (e.Item.FindControl("ddlFunz")==null))
{
DropDownList ddl=((DropDownList)e.Item.FindControl("ddlFunz"));
int actId=Convert.ToInt32(Session["actId"]);
string query_ddl="Select QpaOwnId,AnaLnm from Ana, Qpa where Qpa.QpaAnaId=Ana.AnaOwnId and QpaActId="+ actId;
SqlCommand cmd = new SqlCommand(query_ddl,conn);
conn.Open();
ddl.Items.Add(new ListItem("a", "a"));
ddl.DataSource = cmd.ExecuteReader();
ddl.DataValueField = "QpaOwnId";
ddl.DataTextField = "AnaLnm";
ddl.DataBind();
conn.Close();
int anaId=38;
string selezione="Select QpaOwnId from Qpa where QpaAnaId="+ anaId +" and QpaActId="+ actId;
SqlDataReader dr;
SqlCommand cmd_sel=new SqlCommand(selezione,conn);
conn.Open();
dr=cmd_sel.ExecuteReader();
if(dr.Read()==true)
{
ddl.SelectedValue=dr.GetValue(0).ToString();
}
conn.Close();
}}}
string anaId=DataGrid2.Items[i].Cells[3].Text
al posto della parte in grassetto logicamente non funziona.
Dove dovrei scriverlo per riuscire a recuperarlo?
![]()
ste