Значение ListItem заменяется текстом в DataBind - PullRequest
3 голосов
/ 10 октября 2011

Я немного растерялся из-за этого и не смог найти ничего полезного в моих поисках, поэтому я надеюсь, что кто-нибудь может помочь мне здесь.

У меня есть RadioButtonList, в который я добавляю Список динамически созданных ListItems, где я устанавливаю и текст, и значение для каждого элемента. В DataBind для RadioButtonList значение для ListItem заменяется текстом, который, по-моему, просто не имеет смысла.

Я вижу на стороне клиента, когда смотрю в Firebug, что метка и значение на входе одинаковы, а значение нигде не видно.

Кто-нибудь еще испытывал подобное или кто-нибудь знает, где я могу ошибаться?

var rbList = new List<ListItem>();
var radioButtonList = new RadioButtonList();
foreach(var object in objects) {
  var li = new ListItem {Text = object.Name, Value = object.Guid};
  rbList.Add(li);
}
radioButtonList.DataSource = rbList;
radioButtonList.DataBind();

1 Ответ

10 голосов
/ 10 октября 2011

Должны ли вы использовать привязку данных здесь?Разве вы не можете просто добавить свои ListItems в список переключателей напрямую?

Я бы предположил, что привязка данных запутывается в том, как связать ваш список, поэтому просто использует ToString для каждого из ваших элементов, который, кажется, просто возвращает свойство Text.Затем он используется в качестве текста и значения.

Возможно, вы просто захотите создать свои элементы и добавить их прямо в элемент управления переключателя следующим образом:

var radioButtonList = new RadioButtonList();
foreach(var object in objects) {
  var li = new ListItem {Text = object.Name, Value = object.Guid};
  radioButtonList.Items.Add(li);
}
...