Есть ли способ получить выбранные индексы только в CheckBoxList? - PullRequest
0 голосов
/ 26 января 2011

Я хочу получать выбранные Индексы или Элементы только в checkBox lsit, вместо того, чтобы перебирать каждый элемент, поскольку Like есть в ListBox.

Я получаю выбранное значение в двух случаях следующим образом:

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 у нас есть опция для получения только видимых товаров. Есть ли флажок для списка флажков?

Ответы [ 2 ]

2 голосов
/ 26 января 2011

Я не думаю, что есть, но вы могли бы использовать этот метод расширения, который делает именно это:

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();
1 голос
/ 26 января 2011

Вы на самом деле ответили на свой вопрос. Невозможно получить выбранные элементы только в элементе управления CheckBoxList, в отличие от элемента управления ListBox.

В этой статье есть объяснение и обходной метод справки.

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

Надеюсь, это поможет.

...