2016-06-16 4 views
0

データバインドされたgridviewコントロールから取得した色相値を、使用されているテキストボックスの背景色にバインドしようとしています値を表示します。関連する列のためのItemTemplateに編集した後、私は、私のデータから色相値をとる色に変換して、BackColorプロパティにそれを渡すために、次のコードを追加しました:"Bindは現在のコンテキストにバインドされていません" Bindの結果を操作するとき

<asp:TextBox ID="TextBox8" runat="server" BackColor='<%# GetColourFromHue(int.Parse(Bind("Hue"))) %>' ReadOnly="True" Text='<%# Bind("Hue") %>'></asp:TextBox> 

しかし、私が手次のエラー:GetColourFromHue(int.Parse(Bind("Hue")))

CS0103: The name 'Bind' does not exist in the current context 

は、問題は、私はより多くのコードにバインド(「色相」)コマンドをラップしていたという事実です。

Bindから返された値を操作プロパティに割り当てるには、どうすればよいですか?

+1

そうする方法はありません。 Bindは単純なメソッドではありません。この型でのみ動作する特別に認識された構造体です: '<%#Bind(" FieldName ")%>'。 [ブログの投稿](http://weblogs.asp.net/leftslipper/how-asp-net-databinding-deals-with-eval-and-bind-statements)を参照してください。それ以上のものが必要な場合は、 'Eval'を使用して、双方向バインディングを行います。 – Andrei

答えて

0

@ Andreiのコメントのおかげで、私はBindを使うことができませんが、私はEvalを使うことができます。次の作品:

GetColourFromHue(int.Parse(Eval("Hue").ToString())) 
関連する問題