0

チェックボックスのテキスト値に応じてチェックボックスをオンまたはオフにすることができる小さなコードを探しています。

例:チェックボックスのテキスト値が「はい」の場合は、チェックする必要があります。「はい」でない場合は、チェックしないでください。

これは私が持っているものです:

ASPXページ:

<asp:TemplateField HeaderText="Contract Check" SortExpression="Contract_Check" ItemStyle-Wrap="false">
            <EditItemTemplate></EditItemTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chk_contract_check" Checked='<%# contractCheck(Container.DataItem) %>' Text='<%# Bind("Contract_Check") %>' runat="server" Enabled="false" />
            </ItemTemplate>
            <FooterTemplate></FooterTemplate>
        </asp:TemplateField>

ファイルの背後にあるコード:

protected String contractCheck(CheckBox obj)
    {
        if (obj.Text == "Prior Transition")
            return "True";
        else
            return "False";}

ただし、これは機能していません。どうすればこれをうまく機能させることができるか、皆さんは何か考えがありますか?ありがとう

ケビン

4

3 に答える 3

2

私の頭の中には2つの選択肢があります。

1-インラインロジック:aspxを更新します(関数は必要ありません)

ロジックをインラインで直接マークアップに入れることができるはずです。

<asp:TemplateField HeaderText="Contract Check" SortExpression="Contract_Check" ItemStyle-Wrap="false">
        <EditItemTemplate></EditItemTemplate>
        <ItemTemplate>
            <asp:CheckBox ID="chk_contract_check" Checked='<%# Eval("Text").ToString() == "Prior Transition" %>' Text='<%# Bind("Contract_Check") %>' runat="server" Enabled="false" />
        </ItemTemplate>
        <FooterTemplate></FooterTemplate>
    </asp:TemplateField>

(修正部分はChecked='<%# Eval("Text").ToString() == "Prior Transition" %>'

また

オプション2-個別のロジック:関数を更新します

ロジックを分離したい場合は、いくつかの変更を加える必要があります。Checkbox現在、 (関数が期待しているものではなく)データ項目を渡しています。bool2番目の問題は、ではなく、ロジック関数からを返す必要があることですstring。この場合、次の2つの変更を行う必要があります。

1-チェックするテキストをaspxの関数に渡します

<asp:CheckBox ID="chk_contract_check" Checked='<%# contractCheck(Eval("Text").ToString()) %>' Text='<%# Bind("Contract_Check") %>' runat="server" Enabled="false" />

2-関数を修正してテキストをチェックし、bool

protected bool contractCheck(string text)
{
    return text == "Prior Transition";
}

基本的に、Checked属性がbool機能するにはaが必要であり、文字列を指定します。

于 2012-10-01T16:41:18.437 に答える
0

カスタム CheckBox コントロール (CheckBox から継承) を作成し、そこにコード ビハインド ロジックを配置して、テキストが設定されたときに必要に応じてボックスをチェックしてみませんか?

役立つリンクは次のとおりです。 http://www.codeproject.com/Articles/28783/Your-First-ASP-NET-Custom-Control

于 2012-10-01T15:13:38.767 に答える
0

contractCheck メソッドには、評価できるオブジェクトが必要です

このような

protected String contractCheck(Object obj)
{
        if (DataBinder.Eval(obj, "Name of the field").ToString() == "Prior Transition")
            return "True";
        else
            return "False";}
于 2012-10-01T15:18:17.527 に答える