0

我只想在 checkBox lsit 中获取选定的索引或项目,而不是像 ListBox 中的 Like 那样遍历每个项目。

我在两种情况下获得选定的价值以这种方式:

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);


    }
}

在 ListBox 中,我们可以选择仅获取 Seected 项目是否有任何复选框列表?

4

2 回答 2

2

我认为没有,但您可以使用这种扩展方法来做到这一点:

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();
于 2011-01-26T15:30:44.177 回答
1

你实际上回答了你自己的问题。CheckBoxList与控件不同,无法获取控件中仅选定的项目ListBox

这篇文章有一个解释和一个解决帮助方法的方法。

http://weblogs.asp.net/jgalloway/archive/2005/10/02/426346.aspx

于 2011-01-26T15:30:00.963 回答