2011-01-26 2 views
0

Je veux obtenir les indices ou les éléments sélectionnés seulement dans checkBox lsit au lieu d'itérer à travers chaque élément comme c'est le cas dans ListBox.N'importe quel moyen pour obtenir les indices sélectionnés uniquement dans CheckBoxList?

Je reçois sélectionné Valeur En cas deux ainsi:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

public partial class ChkBxList_2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 

     string li = ""; 
     foreach(ListItem lt in CheckBoxList1.Items) 
     { 
      if(lt.Selected) 
      li += lt.Text; 

     } 
     Response.Write(li); 


    } 
    protected void Button2_Click(object sender, EventArgs e) 
    { 

     string li = ""; 
     foreach (int lt in ListBox1.GetSelectedIndices()) 
     { 
      li += ListBox1.Items[lt].Text; 

     } 
     Response.Write(li); 


    } 
} 

En ListBox nous avons la possibilité d'obtenir uniquement les éléments Seected est-il pour la case à cocher Liste?

Répondre

2

Je ne pense qu'il ya, mais vous pouvez utiliser cette méthode d'extension qui fait exactement cela:

public List<ListItem> GetSelectedItems(this CheckBoxList checkBoxList) 
{ 
    List<ListItem> list = new List<ListItem>(); 
    foreach(ListItem lt in checkBoxList) 
    { 
     if(lt.Selected) 
      list.Add(lt); 
    } 
    return list; 
} 


//Call it like this 
checkBoxList.GetSelectedItems(); 
Questions connexes