Как установить несколько выбранных значений в checkboxlist в asp.net
У меня есть список флажков asp.net, привязанный к источнику данных linq to sql, и когда я проверяю количество элементов моего CheckBoxList на событие загрузки страницы, оно равно 0. Я хочу иметь возможность устанавливать выбранные элементы в моем флажке здесь, но не может.
Выбранное событие источника данных срабатывает после загрузки страницы. Если это так, как я могу установить выбранные элементы в моем списке?
Если я устанавливаю значение SelectedValue на значение, оно отображает только последнее значение, выбранное вместо всех выбранных значений. Как я могу выбрать несколько значений в моем списке флажков в событии pageload?
Ответы
Ответ 1
Я знаю, что это старый пост, но у меня была такая же проблема в последнее время.
Чтобы выбрать несколько элементов DataBound CheckBoxList, обработайте событие DataBound и проведите по элементу коллекции Items значение Selected по отдельности для каждого элемента по мере необходимости.
Настройка свойства SelectedValue элемента управления проверяет только последний элемент.
foreach (ListItem item in MyCheckBoxList.Items)
{
item.Selected = ShouldItemBeSelectedMethod(item.Value);
}
Ответ 2
Хороший метод, который я использую:
private void SetCheckBoxListValues(CheckBoxList cbl, string[] values)
{
foreach (ListItem item in cbl.Items)
{
item.Selected = values.Contains(item.Value);
}
}
Ответ 3
public void SetValueCheckBoxList(CheckBoxList cbl, string sValues)
{
if (!string.IsNullOrEmpty(sValues))
{
ArrayList values = StringToArrayList(sValues);
foreach (ListItem li in cbl.Items)
{
if (values.Contains(li.Value))
li.Selected = true;
else
li.Selected = false;
}
}
}
private ArrayList StringToArrayList(string value)
{
ArrayList _al = new ArrayList();
string[] _s = value.Split(new char[] { ',' });
foreach (string item in _s)
_al.Add(item);
return _al;
}
Спасибо,
slnavn2000
Ответ 4
Звучит как вопрос о жизненном цикле страницы - вопрос привязки данных.
Вы действительно должны взглянуть на (<ответы > ) на этот вопрос.
Ответ 5
Я использовал событие DataBound, чтобы выбрать установку выбранных элементов.
Ответ 6
установить checkboxlist выбранные элементы из списка:
List<int> yourlist;
//fill yourlist
foreach (ListItem item in checkboxlist.Items)
{
if (yourlist.Contains(int.Parse(item.Value.ToString())))
item.Selected = true;
}