2009-02-10 4 views
1

Справочная информация. Я использую ASP.NET 2.0 (с C#), а приведенный ниже код - , встроенный в элемент управления DataGrid. У меня есть следующие в моем файле .aspx:ASP.NET - простой способ поменять логический?

 <ASP:TEMPLATECOLUMN HeaderText="Includes CRS Statement?">  
      <ITEMTEMPLATE> 
       <asp:RadioButtonList id="rblSCIncludesCRSStatement" runat="server" RepeatDirection="Horizontal" 
       SelectedIndex='<%# Convert.ToInt32(DataBinder.Eval(Container, "DataItem.CRS_Included")) %>' 
       DataValueField="CRS_Included" RepeatLayout="Flow"> 
        <asp:ListItem value="true" selected="true">Yes</asp:ListItem> 
        <asp:ListItem value="false">No</asp:ListItem> 
        </asp:RadioButtonList> 
      </ITEMTEMPLATE> 
     </ASP:TEMPLATECOLUMN> 
     <ASP:BOUNDCOLUMN visible="false" HeaderText="IncludesCRSStatement" DataField="CRS_Included"></ASP:BOUNDCOLUMN> 

Предполагается связать логическое значение CRS_Included с RadioButtonList. Он работает, но в обратном порядке. Да повернуто на нет, no не повернуто на «да», и единственный способ, которым я могу это исправить, - это обмен списком ListItems, который будет противоречить друг другу (кнопки «Радио» не должны начинаться, как «Нет/Да», это должно быть Да нет).

Кто-нибудь знает быстрый способ (желательно с использованием функций .NET) для замены 0 на 1, 1 на 0 и исправления проблемы без проблем? Или, есть ли лучший способ написать код SelectedIndex?

Любая помощь оценена :-)

+0

Если вам понравился ответ Джона, вы должны отметить его принятым! –

ответ

13
SelectedIndex='<%# 1 - Convert.ToInt32(...) %> 

1 - 0 = 1; 1 - 1 = 0. Случаи поменять местами :)

EDIT: Там вполне может быть лучший способ обработки более общий вопрос - это всего лишь простой подход к решению 1/0 своп :)

+0

* duh * почему я не подумал об этом :) идея использования математической функции возникла у меня, но я думал о мод() или о чем-то ... серьезно, хотя отличная идея! – n2009

4

Почему не используйте свойство SelectedValue, а не SelectedIndex.?

0

Вы пытались использовать SelectedValue вместо SelectedIndex.

(From MSDN) Свойство SelectedValue также может использоваться для выбора элемента в элементе управления списком путем установки его со значением элемента.