1

aspxページに次のようなものを出力したい(コードビハインドではない):


<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

Fields.FirstName は静的クラスです。どうすればいいですか?「名前 'Fields' は現在のコンテキストに存在しません」というエラーが表示されます。私は何が欠けていますか?.aspx ページに何かを含める必要がありますか?

4

3 に答える 3

2

これを試すことができます:

<input type="text" value="<%=Fields.FirstName %>" id="txt1" />

ただし、これはもはやサーバー コントロールではないことに注意してください。

サーバー コントロールで <%# Fields.FirstName %> 表記を使用することは可能ですが、コード ビハインドから DataBind を呼び出す場合にのみ設定されます。次のように、内側のスコープで二重引用符が必要になることが多いため、外側のスコープで単一引用符を使用するのはかなりカスタムです。

<input type="text" value='<%=Fields["FirstName"] %>' id="txt1" />

ただし、引用符が必要ない場合は、説明したとおりに機能するはずです。

<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

txt1.DataBind()コードビハインドのどこかを呼び出す限り。

詳細については、この質問も参照してください。

于 2012-08-16T23:41:53.580 に答える
1

完全なクラス名 (ネストされたすべての名前空間を含む) と = 記号を使用すると、データバインディングではありません (# 記号で示されます)。普段はこうして...

<%=Namespace.MyStrings.MyConstantString%>

また、ページの設定方法によっては、応答書き込みブラケットの前後に一重引用符を使用する必要がある場合があります....

<asp:TextBox ID="..." runat="server" Text='<%=Namespace.MyStrings.MyConstantString%>'></asp:TextBox>

アップデート:

とてもハッキーですが、うまくいきました...

<supr:SuprTextBox ID="txt" runat="server" ClientIDMode="Static"></supr:SuprTextBox>
<div id="preload" style="display:none;"><%=Supr.Strings.ASSET_CONTROL_LOCATION%></div>
<script type="text/javascript">
    $(function () {
        $('#txt').val($('#preload').html());
    });
</script>

<%= 構文が機能しなかった後、自分自身を引き換える必要がありました。

于 2012-08-16T23:35:37.197 に答える
0

コード ビハインドまたは aspx ページのコード スニペットでこれを行う必要があります。入れ子にすることはできません asp タグ ( <%# %>) をasp:text要素に入れ子にすることはできません。

于 2012-08-16T23:34:31.827 に答える