29 messaggi dal 12 aprile 2011
Ciao Daniele, non a caso cercavo proprio questo...
ho due dropdownlist:

country1, che contiene i nomi delle nazioni (idcountry, country nel database)

regstate1 che contiene i capoluoghi di provincia (idregion, idcountry, region, codreg)


<asp:DropDownList ID="country1" runat="server" OnSelectedIndexChanged="popolareg"></asp:DropDownList>

<asp:DropDownList ID="regstate1" runat="server"></asp:DropDownList>


nel file prova.aspx.cs carico nell'evento Page_Load() il dropdownlist come di seguito:

--------------------------------------------------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
popolacountry();
}
}

protected void popolacountry()
{
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["strlac"].ConnectionString);
string sql = "SELECT * FROM countries";
SqlCommand comm = new SqlCommand(sql, conn);
conn.Open();
try
{
SqlDataReader rs = comm.ExecuteReader();
country1.DataSource = rs;
country1.DataValueField = "idcountry";
country1.DataTextField = "country";
country1.DataBind();
rs.Close();
}
finally
{
conn.Close();
}
}

così facendo si popola solo il dropdownlist COUNTRY1... ma il secondo dropdownlist non si popola con i capoluoghi di provincia...
nemmeno se cambio l'indice... ovvero cambiando nazione, richiamando popolareg()!

protected void popolareg(object sender, EventArgs e)
{
Int32 id = Convert.ToInt32(country1.SelectedValue);

string sql = "SELECT r.idregion, r.idcountry, r.region FROM regstate AS r INNER JOIN countries AS c ON r.idcountry=c.idcountry WHERE r.idcountry=@ct";
SqlCommand comm = new SqlCommand(sql, conn);

SqlParameterCollection coll = comm.Parameters;
coll.Add("@ct", SqlDbType.Int);
coll["@ct"].Value = id;

conn.Open();

try
{
SqlDataReader rs1 = comm.ExecuteReader();
regstate1.DataSource = rs1;
regstate1.DataValueField = "idregion";
regstate1.DataTextField = "region";
regstate1.DataBind();
rs1.Close();
}

finally
{
conn.Close();
}
}

Dove sbaglio???
29 messaggi dal 12 aprile 2011
Ovviamente anche in popolareg() ho creato la connessione come in popolacountry()...
29 messaggi dal 12 aprile 2011
RISOLTO
Ho aggiunto in Page_Load -> popolareg(sender,e);
in modo da visualizzare l'elenco dei capoluoghi al caricamento della pagina e...

e nel controllo ho aggiunto AutoPostBack=true !!! Ora funziona. Ma ho fatto bene???

<asp:DropDownList ID="country1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="popolareg"></asp:DropDownList>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.