我必须在PageLoad和运行时填充一些DropDownLists。如果第一个DropDownList调用其onSelectedItemChanged()
,则填充第二个DropDownList,因为我必须根据第一个ddl的selectedvalue填充第二个ddl。我从sql查询中获取第二个ddl的数据
这是我的代码:
private void fill_dropdown_schueler(string klasse)
{
string query_select = "";
SqlConnection con = new SqlConnection();
SqlDataReader dr;
SqlCommand select;
ArrayList schueler = new ArrayList();
con.ConnectionString = ConfigurationManager.ConnectionStrings["Projektwoche"].ConnectionString;
try
{
if (con.State == ConnectionState.Closed)
con.Open();
/*** Fill DropDownList4 "Schüler" ***/
query_select = "SELECT [Nachname], [Vorname], [Katalognummer] FROM [Projektwoche].[dbo].[Einträge] WHERE Klasse='" + klasse + "'ORDER BY [Nachname] ASC;";
select = new SqlCommand(query_select, con);
dr = select.ExecuteReader();
int index = 0;
while (dr.Read())
{
schueler.Add((String)dr["Nachname"] + " " + (String)dr["Vorname"] + " Nr: " + (String)dr["Katalognummer"]);
kata[index] = Convert.ToInt32((String)dr["Katalognummer"]);
index++;
}
dr.Close();
DropDownList4.DataSource = schueler;
DropDownList4.DataBind();
schueler.Clear();
con.Close();
}
catch (Exception e)
{
Label7.Text = e.ToString();
}
}
所以我将Katalognummer]
的值存储在全局数组kata[]
中,这样我就可以通过第二个DropDownList的索引来访问它们的值(不再做更多的查询)。
如果我将数组kata[]
的值放入Label中,它们就可以了,但前提是我将Label.Text = kata[].ToString();
放入此函数中。
此函数在第一个ddl的onSelectedItemChanged
方法中调用。
如果我想在另一个函数中获取数组kata[]
的值,则所有值都为0,而不是我想要的查询值。
似乎数组kata[]
在此函数后被清除了???