直接在页面上输出静态属性.aspx



我想在aspx页面上输出这样的东西(不是代码隐藏):


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

其中 Fields.FirstName 是一个静态类。我该怎么做?我收到一条错误消息,指出"当前上下文中不存在名称'字段'"。我错过了什么?我必须在.aspx页面上包含某些内容吗?

你可以试试这个:

<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()

另请参阅此问题以获取更多信息。

使用完整的类名(包括所有嵌套的命名空间)和 = 符号,您不是数据绑定(用 # 符号表示)。 我经常这样做...

<%=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>

在 <%= 语法不起作用后不得不赎回自己。

您需要在 aspx 页上的代码隐藏或代码段中执行此操作。不能嵌套 asp 标记 ( <%# %> ) 不能嵌套在 asp:text 元素中。

最新更新