1

背景: 私は 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の順序を入れ替えることです(ラジオボタンはいいえ/はいのように開始しないでください。はい・いいえ)。

0 を 1 に、1 を 0 に交換し、問題をシームレスに修正する簡単な方法 (できれば .NET 関数を使用する) を知っている人はいますか? または、SelectedIndex コードを記述するより良い方法はありますか?

どんな助けでも大歓迎です:-)

4

3 に答える 3

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

1 - 0 = 1; 1 - 1 = 0. ケースが入れ替わった :)

編集:より一般的な質問を処理するより良い方法があるかもしれません-これは1/0スワップを解決する単純なアプローチでした:)

于 2009-02-10T23:54:54.477 に答える
4

SelectedIndex ではなく SelectedValue プロパティを使用しないのはなぜですか?

于 2009-02-10T23:58:21.350 に答える
0

SelectedIndex の代わりに SelectedValue を使用してみましたか。

(MSDN より) SelectedValue プロパティを使用して、項目の値を設定することにより、リスト コントロール内の項目を選択することもできます。

于 2009-02-11T00:03:22.647 に答える