checkboxlist événement selectedindexchanged c# ne fonctionne pas

J'ai une checkboxlist sur mon asp.net page. Je suis le remplissant avec les pays. J'ai ajouté un "SelectedIndexChanged" de l'événement qui est censé vérifier que si l'un des pays de l'est de l'Afrique, il convient de faire une zone de texte visible, sinon visible=false si elle n'est pas sélectionnée. J'ai changé le AutoPostback à true. Mais le problème que je vais avoir, c'est qu'il n'est pas de faire un autopostback (il ne va pas dans la méthode). Quelqu'un pourrait svp m'aider sur ce point?

C'est ce que j'ai fait:

     <div id="div1" style="overflow-x:auto; width:100%; max-width:100%; height:150px; max-height:150px;" runat="server">
      <asp:CheckBoxList ID="lstLocations" CssClass="CheckBoxList" runat="server" Width="40%" Height="100%" AutoPostBack="True" OnSelectedIndexChanged="lstLocations_SelectedIndexChanged" >
      </asp:CheckBoxList>
     </div>

Remplissage de la checkboxlist:

     private void CreateRegionList()
    {
        lstLocations.Items.Clear();

        cn = new SqlConnection(GetConnectionString());
        SqlCommand myCmd = new SqlCommand("SELECT ID, Region FROM CanonSALeads_Region ORDER BY Region", cn);
        cn.Open();
        SqlDataReader myReader = myCmd.ExecuteReader();

        lstLocations.AutoPostBack = false;
        lstLocations.CellPadding = 5;
        lstLocations.CellSpacing = 5;
        lstLocations.RepeatColumns = 1;
        lstLocations.RepeatDirection = RepeatDirection.Vertical;
        lstLocations.RepeatLayout = RepeatLayout.Flow;
        lstLocations.TextAlign = TextAlign.Right;
        lstLocations.CssClass = "CheckBoxList";

        if (myReader.HasRows)
        {
            while (myReader.Read())
            {
                CheckBox cb = new CheckBox();
                cb.ID = myReader[0].ToString();
                cb.Text = myReader[1].ToString();
                cb.AutoPostBack = false;
                cb.CssClass = "CheckBox";

                lstLocations.Items.Add(new ListItem(myReader[1].ToString(), myReader[0].ToString()));
                lstLocations.Controls.Add(new LiteralControl("<br>"));
            }
        }
        cn.Close();
        myReader.Close();
    }

Et c'est mon événement selectedIndexChanged:

    protected void lstLocations_SelectedIndexChanged(object sender, EventArgs e)
    {
        string value = null;
        try
        {
            foreach (ListItem checkBox in lstLocations.Items)
            {
                if (checkBox.Selected == true)
                {
                    value = checkBox.Text;

                    if (value == "Africa")
                    {
                        txtCountryOfAfrica.Visible = true;
                        lblAfricaCountry.Visible = true;
                    }
                }
                else
                {
                    value = checkBox.Text;

                    if (value == "Africa")
                    {
                        txtCountryOfAfrica.Visible = false;
                        lblAfricaCountry.Visible = false;
                    }
                }
            }

        }
        catch (Exception ex)
        {
            string msg = "Select Error:";
            msg += ex.Message;
            throw new Exception(msg);
        }

    }

Méthode Page_Load:

     protected void Page_Load(object sender, EventArgs e)
    {
        string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        txtUser.Text = userName;

        if (!IsPostBack)
        {
            ContainerDocumentation.ActiveTab = tabAddCustomer;
            PopulateSector();
            CreateRegionList();
            PopulateOpportunitySource();
            CreatelstProductGroupList();
            PopulateStatus();

            PopulateTenders();
            PopulateOtherOpportunityType();
        }
    }
À l'aide !Ispostback dans la forme de la charge de vérifier
J'ai ajouté à l'intérieur et à l'extérieur de l' (!IsPostBack), mais ce n'est pas la partie qui ne fonctionne pas. Le remplissage fonctionne parfaitement, la seule partie qui n'est pas le travail, c'est lors de la sélection d'une case à cocher, il est censé aller à l'événement selectedIndexChanged, mais il ne va pas dans cette méthode....
valeur = checkBox.SelectedItem.Texte;
Merci pour votre aide, l'apprécier! Le problème est que ses pas même d'atteindre la chaîne de valeur = null; ou instruction foreach... il ne va pas dans cette méthode à tous....

OriginalL'auteur Kerieks | 2013-11-14