Как получить Выбранное значение динамически созданного флажка в цикле for - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть массив checkboxlist, который создается динамически, теперь я хочу получить выбранные значения checkboxlist в цикле for, мой код ниже

защищенный void OnbtnNext1_Click (отправитель объекта, EventArgs e) {

        for (int i = 0; i < this.cbCountry.Items.Count; i++)
        {
            if (cbCountry.Items[i].Selected)
            {
                itemsCountry.Add(cbCountry.Items[i].Value);
                countCountry++;
            }
        }

        PopulateWaveCheckBoxes(itemsCountry);
        this.pnlWave.Visible = true;
    }


    private void PopulateWaveCheckBoxes(ArrayList items)
    {
        Label[] lbls = new Label[items.Count];
        CheckBoxList cblWave = new CheckBoxList[items.Count];

        for (int i = 0; i < items.Count; i++)
        {
            lbls[i] = new Label();
            lbls[i].Text = items[i].ToString();
            cblWave[i] = new CheckBoxList();
            cblWave[i].ID = "Checkbox" + i.ToString();
            cblWave[i].Items.Add(new ListItem("Wave 1"));
            cblWave[i].Items.Add(new ListItem("Wave 2"));
            cblWave[i].Items.Add(new ListItem("Wave 3"));
            cblWave[i].Items.Add(new ListItem("Wave 4"));
            this.pnlWave.Controls.Add(lbls[i]);
            this.pnlWave.Controls.Add(cblWave[i]);
            this.pnlWave.Controls.Add(new LiteralControl("<br>"));
        }
    }

    protected void OnbtnNext2_Click(object sender, EventArgs e)
    {

        itemsWave = new ArrayList[countCountry];
        for (int j = 0; j < countCountry; j++)
        {
            itemsWave[j] = new ArrayList();
            for (int i = 0; i < 4; i++)
            {
                if (cblWave[j].Items[i].Selected) // Here i want to get the values
                {
                    itemsWave[j].Add(cblWave[j].Items[i].Value);
                }
            }
            PopulateColorCheckBoxes(itemsWave[j], j);
        }
    }

1 Ответ

0 голосов
/ 15 апреля 2011

Вы должны объявить ваш CheckBoxList cblWave как переменную класса:

CheckBoxList cblWave;

А затем в вашем PopulateWaveCheckBoxes вы должны создать экземпляр и заполнить его:

private void PopulateWaveCheckBoxes(ArrayList items){
Label[] lbls = new Label[items.Count];
cblWave = new CheckBoxList[items.Count];
...