2

解決済み:以下の私の解決策を参照してください!

C#コードビハインドでaspxを使用します。

グリッドビューのアイテムテンプレートのボタンに次のコードがあります。

Enabled='<%# IIF(Eval("wrqst_need_ind") == "Y","TRUE","FALSE") %>'

次のエラーが発生します。

The name 'IIF' does not exist in the current context

私は何が間違っているのですか?「IIF」ではなく「IF」を使用した場合も同じエラーが発生します

完全なアイテムテンプレートコードは次のとおりです。

<ItemTemplate>
                <asp:Button  ID="wrqst_need_ind_btn" runat="server" Text = "Create WR" 
                    onClientClick="javascript:popUp('popup_createWR.aspx')"  
                    Enabled='<%# IIF(Eval("wrqst_need_ind") == "Y","TRUE","FALSE") %>'
                    CommandArgument='<%# Eval("dvc_nm") + "|" + Eval("data_orgtn_yr") %>'/>
</ItemTemplate>

ラインを外せば問題なく動作します。

これはうまくいくはずだと私には思えます...

編集:私は今これを使用しています:

Enabled='<%#Eval("wrqst_need_ind") == "Y" ? "TRUE" : "FALSE" %>'

そして、このエラーが発生します:

サーバータグが適切に形成されていません。

どうもありがとうございました!

アップデート:

私はこれを試しました:

Enabled='<%# Eval("wrqst_need_ind") == "Y" ? Convert.ToBoolean(1) : Convert.ToBoolean(0) %>' and it ran!

しかし、すべてのボタンが無効になりました。だから私は試しました:

Enabled='<%# Eval("wrqst_need_ind") == "Y" ? Convert.ToBoolean(1) : Convert.ToBoolean(1) %>'

その後、すべてのボタンが無効になりました。falseを返すたびに...なぜですか?

解決済み:以下の私の解決策を参照してください!

4

5 に答える 5

7

C#では、その3値構文は次のとおりです。

Eval("wrqst_need_ind") == "Y" ? "TRUE" : "FALSE"

たまたまVB.NETを使用している場合(使用していないように見える)は、このIf関数を使用してください。

If(Eval("wrqst_need_ind") == "Y", "TRUE", "FALSE")

編集:==ここでは文字列の内容ではなく、文字列オブジェクトを比較することがわかりました。したがって、代わりにを使用する必要があります.Equals("Y")。したがって、コミュニティによって生成された最終的な答えは次のとおりです。

Enabled='<%# Eval("wrqst_need_ind").Equals("Y") %>'
于 2010-06-25T16:05:58.977 に答える
2

これはうまくいったコードです!

Enabled='<%# Eval("wrqst_need_ind").ToString().Equals("Y".ToString()) ? Convert.ToBoolean(1) : Convert.ToBoolean(0) %>'
于 2010-06-28T14:23:15.080 に答える
1

あなたが行っているすべての「Convert.ToBoolean(1)」についてはよくわかりません。trueとfalseが必要な場合は、trueとfalseを記述してください(引用符なしで指定しないと、文字列として扱われます)。

例えば。Enabled='<%#Eval("wrqst_need_ind") == "Y" ? true:false %>'

もちろん、私がタイプすると、この種の演算子を使用する必要がないことがわかります。とにかく条件はtrueまたはfalseを返すので、上記は次のように単純化されます。

Enabled='<%#Eval("wrqst_need_ind") == "Y" %>'
于 2010-06-28T14:23:44.673 に答える
0

正しいキーワークは小文字の「if」であると確信しています。

于 2010-06-25T16:04:24.513 に答える
0

それが他の誰かを助ける場合に備えて...

このスタイルは私にはうまくいきませんでした:

(Eval("status").ToString()).Equals("Done")

しかし、このスタイルは機能しました:

(Eval("status").ToString()).Contains("Done")
于 2015-01-14T16:50:30.887 に答える