2011-10-10 5 views
3

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

У меня есть 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(); 
+0

Где определение «объектов»? –

+0

Вы смешиваете два разных подхода, как заполнять RadioButtonList данными! Это неверно. Либо вы добавляете ListItem-s в radioButtonList.Items (как показано ниже), либо используете источник radioButtonList.DataSource и поставляете некоторый набор объектов non-ListItem (обычно Entitites) - поэтому поведение, с которым вы столкнулись, является правильным –

ответ

9

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

Я бы предположил, что Databinding путается о том, как связать ваш список, поэтому просто используйте 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); 
} 
+0

Большое спасибо, что исправлено мое проблема. Ваше объяснение о том, почему, похоже, имеет смысл. Ты - жизнь и сон! –

+0

Рад помочь. Вы можете +1 меня, если вы в этом в восторге от решения (он поднял стрелку вверх над номером). ;-) Рад помочь. Это то, для чего мы здесь. :) – Chris

+0

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