一致するデータベーステーブルフィールドとクエリ文字列に応じて、Panel.visibleをバインドして表示しようとしています。
<asp:Panel ID="Panel2" runat="server" Visible='<%# Eval("Mjr_Id") == Request.QueryString["Mjr_Id"] %>'> ... </asp:Panel>
しかし、失敗しました。これを行うための正しいバインディング形式についてのアイデアはありますか?
一致するデータベーステーブルフィールドとクエリ文字列に応じて、Panel.visibleをバインドして表示しようとしています。
<asp:Panel ID="Panel2" runat="server" Visible='<%# Eval("Mjr_Id") == Request.QueryString["Mjr_Id"] %>'> ... </asp:Panel>
しかし、失敗しました。これを行うための正しいバインディング形式についてのアイデアはありますか?
Eval 関数はオブジェクトを返しますが、QueryString インデクサーは文字列を返します。オブジェクトと文字列に等値演算子を適用すると、値の比較が必要なのに対し、参照の比較になります。
コードを機能させるには、オブジェクトを文字列に変換する必要があります。
Visible='<%# Eval("Mjr_Id", "{0}") == Request.QueryString["Mjr_Id"] %>'
注意:これにより、大文字と小文字が区別される序数比較が実行されます。それが望ましくない場合は、 string.Equals(string, string, StringComparison)メソッドを使用する必要があります。