2012-01-04 7 views
0

私は次のコードを試しました。<%のようなインライン式を使用しようとしましたが、<%=、なぜサーバーサイドコントロールでインライン式を使用できないのですか?サーバコントロールのインラインページコードは動作しません

私の最初のコード行で、私はこの記事に従おうとしていましたが、うまくいきません。どうして? http://todotnet.com/post/2009/04/18/Working-around-Cannot-create-an-object-of-type-SystemBoolean-from-its-string-representation.aspx

<asp:TextBox ID="txtDate" runat="server" Text='<%# DateTime.Now.Date.ToString("dd-MM-yyyy")%>' meta:code='<% txtDate.DataBind(); %>'></asp:TextBox> 

<asp:TextBox ID="TextBox1" runat="server" Text='<%= DateTime.Now.Date.ToString("dd-MM-yyyy")%>'></asp:TextBox> 

<asp:TextBox ID="TextBox2" runat="server" Text='<% DateTime.Now.Date.ToString("dd-MM-yyyy")%>'></asp:TextBox> 
+2

「何も動作しません」とは、問題が発生していることを説明していないことです。あなたはあなたが何をしようとしているのか、あなたの試みが何をもたらしたのかを言っていません。 http://tinyurl.com/so-hints –

答えて

2

あなたは、サーバー側のコントロール内のコード・ブロック(<%%><%=%><%:%>)を使用することはできません。バインディング式(<%#%>)は別の問題です。

shortcut server side code blocksの違いについては、あなたが何も教えてくれないように思われるように、ランダムに異なるものを試してみる必要があります。

あなたは、分離コードファイル内の値を割り当てることができます。

TextBox1.Text = DateTime.Now.Date.ToString("dd-MM-yyyy"); 
+0

を読んで、meta:code trickがうまくいかない理由を教えてください。 – Costa

+0

@Costa - 'meta:code'トリックとは何ですか? – Oded

+0

@ Oded-これは、テキストボックスに現在の日付時刻を設定する質問の中で私の最初の嫌悪です。メタトリックについては、 を参照してください。http://todotnet.com/post/2009/04/18/Working-around-Cannot-create-an-object-of-type-SystemBoolean-from-its-string-representation.aspx – Costa

1

とき、あなたがそれを評価するためにControl.DataBind()またはPage.DataBind()を呼び出すために持っている必要がありますbind表現<%# %>

+0

私はmeta:code = '<%txtDate.DataBind();を書いたときに私がすでにやったと思った。 %> 'の場合、なぜインラインコードは動作しないのですか? – Costa

+0

これらは**サーバー**コントロールであり、そのプロパティはコードまたはバインディング式で設定できるためです。 <% and %>はバインディング式ではないASP.NETコードブロックです。投稿したリンクはここでは無意味です。 – adatapost