2017-01-20 2 views
0

Я пытаюсь установить первый RadioButton в Repeater в зарегистрированном:Контейнер Repeater.ItemIndex всегда 0?

<asp:RadioButton runat="server" GroupName="ApplicationOption" 
    Checked="<%# new Func<bool>(() => { 
     System.Diagnostics.Debugger.Break(); 
     return !IsPostBack && Container.ItemIndex == 0; })() %>" />  

Вызов Debugger.Break вызывает выполнение сломать в режиме отладки, так что я могу просмотреть значения. Каждый раз, когда он ломается, Container.ItemIndex равен 0, тогда как я ожидаю, что оно будет 0, 1 или 2.

Источник данных ретранслятора - это список из 3 элементов. Я не хочу использовать Code-Behind; т. е. я хочу сохранить все в разметке.

Что мне не хватает?

ответ

0

Убедитесь, что ретранслятор является только DataBound один раз и убедитесь, что DataSource - это то, что вы думаете.

Проблема заключалась в том, что ретранслятор не был DataBound один раз с источником данных из трех элементов, но он был DataBound три раза с DataSource из 1 элемента. :/

Да, я не уверен, почему здесь использовался и ретранслятор.

+0

Кроме того, ретранслятор сам был внутри DataLound DataList, чей ItemIndex является фактическим, который мне нужен. Чтобы получить _that_, используйте: '(Container.NamingContainer.NamingContainer как DataListItem) .ItemIndex'. –

Смежные вопросы