ASP.NET - 交换布尔值的简单方法?

时间:2009-02-10 23:53:39

标签: c# asp.net datagrid

背景:我使用的是ASP.NET 2.0(带有C#),下面的代码是 嵌入在DataGrid控件中。 我的.aspx文件中有以下内容:

        <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绑定。它有效,但顺序相反。是的转为否,没有转为是,我可以看到解决它的唯一方法是交换ListItems的顺序,这将是违反直觉的(单选按钮不应该像No / Yes一样启动,它需要是是/否)。

有没有人知道一种快速的方式(最好使用.NET函数)将0换成1,将0换成0并无缝修复问题?或者,有没有更好的方法来编写SelectedIndex代码?

感谢任何帮助: - )

3 个答案:

答案 0 :(得分:13)

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

1 - 0 = 1; 1 - 1 = 0.案例交换:)

编辑:可能有更好的方法来处理更一般的问题 - 这只是解决1/0交换的简单方法:)

答案 1 :(得分:4)

为什么不使用SelectedValue属性而不是SelectedIndex。?

答案 2 :(得分:0)

您是否尝试过使用SelectedValue而不是SelectedIndex。

(来自MSDN)SelectedValue属性也可用于通过使用项目值设置列表控件中的项目。