Jag har följande i min dbklass: Använd egenskaperna för detta via <asp: ... kontroller så bör det fungera som du vill ha et.. jag har provat att binda den till en SQLDataSource, men det vill sej inte då dropdownen ligger i en UpdatePanel. Gör jag det i code behind så ska det ju fungera ändå. Problemet är att jag ska använda värdet från en annan dropdown som tar ut @countyID. Det är den dropdownen som inte hittas. Även den dropdownen ligger i samma UpdatePanel.Binda dropdown
<code>
public List<Kom> getAllKomByCounty(int _countyID)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("getAllKomByCounty", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@countyID", SqlDbType.Int));
cmd.Parameters["@countyID"].Value = _countyID;
List<Kom> kom = new List<Kom>();
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Kom koms = new Kom((int)reader["komID"], (string)reader["kom"]);
kom.Add(koms);
}
reader.Close();
return kom;
}
catch (Exception err)
{
throw new Exception(err.Message);
}
}
</code>
Detta har jag i min code behind.
<code>
protected void ddlCounty_SelectedIndexChanged(object sender, EventArgs e)
{
KomDB komDB = new KomDB();
//Kom kom = new Kom();
int countyID = int.Parse(ddlCounty.SelectedValue.ToString());
ddlKom.DataSource = komDB.getAllKomByCounty(countyID);
ddlKom.DataBind();
}
</code>
Hur kan jag göra för att DataTextField blir kom och DataValueField blir komID i min dropdown? Som det är nu får jag ut rätt antal men alla listitem visas som "Kom".Sv: Binda dropdown
Sv:Binda dropdown
Jag har även försökt att göra detta i code behind med FindControl men det vill sej inte.
---------------------EDIT--------------------
När jag använder sqldatasource och binder till den får jag detta fel:
Could not find control 'ddlCounty' in ControlParameter 'countyID'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Could not find control 'ddlCounty' in ControlParameter 'countyID'.
Det är väl för att det inte går att hitta ddlCounty, och anledningen till det är väl för att den ligger i en UpdatePanel? Jag har försökt som jag skrev innan med FindControl. Har någon nån idé?
Så här ser mina kontroller ut:
<code>
<asp:DropDownList ID="ddlCounty" runat="server" DataSourceID="sqlGetAllBusyCounty"
DataTextField="county" AutoPostBack="true" DataValueField="countyID" />
<asp:DropDownList ID="ddlKom" runat="server"
DataSourceID="sqlGetAllKomByCounty" DataTextField="kom"
DataValueField="komId" />
<asp:SqlDataSource ID="sqlGetAllBusyCounty" runat="server"
ConnectionString="<%$ ConnectionStrings:myCon%>"
SelectCommand="getAllBusyCounty" SelectCommandType="StoredProcedure" />
<asp:SqlDataSource ID="sqlGetAllKomByCounty" runat="server"
ConnectionString="<%$ ConnectionStrings:myCon%>"
SelectCommand="getAllKomByCounty" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="ddlCounty" Name="countyID"
PropertyName="SelectedValue" DefaultValue="9" />
</SelectParameters>
</asp:SqlDataSource>
</code>