0

パネルに ListBox の Dynamically を作成しました。動的に作成された ListBox から選択した項目を読みたいと思います。以下は、動的リストボックスを作成するために使用したコードです。動的に作成されたリストボックスを取得して、選択した項目を読み取る方法を教えてください。'protected void GotoReport_Click(オブジェクト送信者, ImageClickEventArgs e) {

        foreach (TreeNode tndim in tvCubedef.CheckedNodes)
        {

            lbFilter.Items.Add(tndim.Text);

        }
        foreach (ListItem item in lbFilter.Items)
        {
            item.Selected = true;
        }

        panFilter.Controls.Clear();
        connstr2 = System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
        conn2.ConnectionString = connstr2;
        conn2.Open();
        CubeCollection CubeList = conn2.Cubes;
        string cb = ddlCubeList.SelectedItem.Text;

        foreach (ListItem li in lbFilter.Items)
        {

            ListBox listb = new ListBox();
            ListItem Memlist = new ListItem();
            listb.SelectionMode = System.Web.UI.WebControls.ListSelectionMode.Multiple;
            listb.Height = 150;
            listb.Width = 250;

            string Repl1 = li.Value.Replace("[", "");
            string Repl2 = Repl1.Replace("]", "");
            string[] DimMember = Repl2.Split('.');
            foreach (Member dimem in CubeList[cb].Dimensions[DimMember[0]].Hierarchies[DimMember[1]].Levels[DimMember[2]].GetMembers())
            {

                Memlist.Text = dimem.Name;
                listb.Items.Add(Memlist);
                panFilter.Controls.Add(listb);

            }

        }


    } '
4

1 に答える 1

0

イベントハンドラを動的に追加する必要があります:

listb.SelectedIndexChanged += new EventHandler(listb_SelectedIndexChanged);

もちろん、このメソッドも提供する必要があります。

protected void listb_SelectedIndexChanged(Object sender, EventArgs e)
{
    ListBox listb = (ListBox) sender;
}

遅くとも以前と同じようにListBox 、すべてのポストバックで(必要に応じて)これを再作成していますか?page_loadID

于 2012-11-30T08:17:51.963 に答える