2017-03-09 3 views
0

Unten ist meine CheckBoxList Design Code.CheckboxList Auswahl des Problems mit Asp.net C#

<asp:CheckBoxList ID="chklst_assistance_seeking" runat="server" 
AutoPostBack="True" OnSelectedIndexChanged="chklst_assistance_seeking_SelectedIndexChanged" RepeatDirection="Vertical"> 
<asp:ListItem Text="Mentoring" Value="Mentoring"></asp:ListItem> 
<asp:ListItem Text="Seed Funding" Value="Seed Funding"></asp:ListItem> 
<asp:ListItem Text="Assistance in Market Access" Value="Assistance in Market Access"></asp:ListItem> 
<asp:ListItem Text="Help with certification" Value="Help with certification"> </asp:ListItem> 
<asp:ListItem Text="Other" Value="Other"></asp:ListItem> 
</asp:CheckBoxList> 

Unten ist meine checkboxlist wählen Index ändern Code.

protected void chklst_assistance_seeking_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string assistance_seeking = ""; 
    Collection<string> items = new Collection<string>(); 
    for (int index = 0; index < chklst_assistance_seeking.Items.Count; index++) 
    { 
     if (chklst_assistance_seeking.Items[index].Selected) 
     { 
      items.Add(chklst_assistance_seeking.Items[index].ToString()); 
     } 
    } 
    assistance_seeking = String.Join(",", items.ToArray()); 

    string[] selectedvalues = assistance_seeking.Split(','); 
    for (int i = 0; i < selectedvalues.Length; i++) 
    { 
     selectedvalues[i] = selectedvalues[i].Trim(); 
     if (selectedvalues[i].ToString() == "Help with certification") 
     { 
     pnl_assistance_seeking_help.Visible = true; 
     } 
     else if (selectedvalues[i].ToString() == "Other") 
     { 
     pnl_assistance_seeking_Other.Visible = true; 
     } 
     else if (selectedvalues[i].ToString() == "Mentoring") 
     { 
      pnl_assistance_seeking_Mentoring.Visible = true; 
     } 
     else 
     { 
      pnl_assistance_seeking_help.Visible = false; 
      pnl_assistance_seeking_Other.Visible = false; 
      pnl_assistance_seeking_Mentoring.Visible = false; 

     } 
    } 

} 

Wenn ich Checkboxlist Artikel Auswahl bin, dann ist Platte wahr richtig sichtbar nach einer nach dem anderen die Auswahl, aber wenn ich Abwahl Checkboxlist Artikel eins nach dem anderen dann Feld durch eine nicht sichtbar falsch ist. Es ist sichtbar falsch alle letzten Abwahl.

+0

jede Logik, bitte helfen Sie, dies herauszubekommen. – user6254696

Antwort

0

Die Sichtbarkeit der Panels wird innerhalb der Schleife auf false zurückgesetzt, so dass dies bei jeder Iteration passieren kann, was falsch erscheint. Außerdem werden Sie den Status anderer Panels nicht zurücksetzen, wenn eine der if-Anweisungen wahr ist.

würde ich die folgende Logik vorschlagen:

  • alle Sichttafeln Auf false gesetzt, bevor die Schleife
  • Führen Sie die Schleife
  • bei jeder Iteration wahrscheinlich Sicht einiger Panel auf true ändern, wenn die Bedingung ist Zufrieden gestellt

Auf diese Weise sollten Sie immer Panels Sichtbarkeit entsprechend dem aktuellen Status der Kontrollkästchen haben. Im Code würde ungefähr so ​​aussehen:

pnl_assistance_seeking_IIGP_help.Visible = false; 
pnl_assistance_seeking_IIGP_Other.Visible = false; 
pnl_assistance_seeking_IIGP_Mentoring.Visible = false; 

string[] selectedvalues = assistance_seeking_IIGP.Split(','); 
for (int i = 0; i < selectedvalues.Length; i++) 
{ 
    selectedvalues[i] = selectedvalues[i].Trim(); 
    if (selectedvalues[i].ToString() == "Help with certification") 
    { 
    pnl_assistance_seeking_IIGP_help.Visible = true; 
    } 
    else if (selectedvalues[i].ToString() == "Other") 
    { 
    pnl_assistance_seeking_IIGP_Other.Visible = true; 
    } 
    else if (selectedvalues[i].ToString() == "Mentoring") 
    { 
     pnl_assistance_seeking_IIGP_Mentoring.Visible = true; 
    } 
} 
+0

jetzt Panel ist nicht sichtbar wahr, wenn ich ein beliebiges Element der Checkbox-Liste auswählen, überprüfen Sie bitte. @Andrei – user6254696

Verwandte Themen