Я пытаюсь сделать правильный выбор в DropDownList ddlMealType
с соответствующим значением в зависимости от выбора в DropDownList ddlMeals
. Это отлично работает, когда я вручную выбираю пищу, но не тогда, когда страница изначально загружена (так как selectedIndex = -1 для ddlMeal
).Set DropDownList.SelectedIndex в Page_Load
Поэтому я пытаюсь установить выбранный индекс в первую раздачу в списке в Page_Load, но при добавлении точки останова в следующую строку я вижу, что значение SelectedIndex равно -1. Невозможно ли программно установить свойство SelectedIndex в dropdownList?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlMeals.SelectedIndex = 0;
ddlMeals_SelectedIndexChanged(this, EventArgs.Empty);
}
}
protected void ddlMeals_SelectedIndexChanged(object sender, EventArgs e)
{
// Fetch details for selected Meal
SqlDataReader reader = null;
String ConnectString = System.Configuration.ConfigurationManager.ConnectionStrings["Kunskapshjulet"].ConnectionString;
SqlConnection connection1 = new SqlConnection(ConnectString);
SqlCommand selectCommand = new SqlCommand("SELECT MealType FROM Meals WHERE MealID = " + ddlMeals.SelectedValue, connection1);
try
{
connection1.Open();
reader = selectCommand.ExecuteReader();
reader.Read();
string strMealtype = reader[0].ToString();
ddlMealTypes2.SelectedValue = reader[0].ToString();
}
<asp:DropDownList ID="ddlMeals" runat="server" OnSelectedIndexChanged="ddlMeals_SelectedIndexChanged"
AutoPostBack="True" DataSourceID="SqlMealsPerUser" DataTextField="MealName" DataValueField="MealID" Width="180px">
</asp:DropDownList>