我必须在 PageLoad 和运行时填写一些 DropDownLists。如果第一个调用它,则填充第二个 DropDownList,onSelectedItemChanged()
因为我必须根据第一个 ddl 的选定值填充第二个 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.Text = kata[].ToString();
放入此函数中。
此函数在onSelectedItemChanged
第一个 ddl 的方法中调用。
如果我想kata[]
在另一个函数中获取数组的值,所有值都是 0,而不是我想要从查询中获得的值。
似乎kata[]
在这个函数之后数组被清除了???