dropdownlist的索引重置/值保持在selecteditemchanged上

时间:2013-01-17 16:22:52

标签: asp.net drop-down-menu indexing

我必须在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[]在此函数后被清除了???

0 个答案:

没有答案