我想在aspx页面上输出类似的东西(不是代码隐藏):
<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">
其中Fields.FirstName是静态类。我该怎么做呢?我收到一条错误消息“当前上下文中不存在名称'Fields'”。我错过了什么?我必须在.aspx页面上包含一些内容吗?
答案 0 :(得分:2)
你可以试试这个:
<input type="text" value="<%=Fields.FirstName %>" id="txt1" />
但请记住,它不再是服务器控件。
可以使用&lt;%#Fields.FirstName%&gt;服务器控件中的表示法,但只有在从代码隐藏中调用DataBind时才会填充它们。在外部范围内使用单引号是非常自定义的,因为在内部范围中经常需要双引号,如下所示:
<input type="text" value='<%=Fields["FirstName"] %>' id="txt1" />
但是如果不需要引号,它也应该如你所描述的那样工作:
<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">
只要在后面的代码中的某处调用txt1.DataBind()
。
有关详细信息,另请参阅this question。
答案 1 :(得分:0)
您需要在aspx页面后面的代码或代码片段中执行此操作。你不能嵌套asp标签(<%# %>
)不能嵌套在asp:text
元素中。