有没有办法直接访问aspx页面中的类字段?
我试过这个:
在我添加的aspx页面中:
<form id="LoginForm" runat="server">
<asp:Label Text='<%# Eval("Test") %>' runat="server" ID="jym" />
</form>
在本页的后端类中,我已将属性声明为:
private string test;
public string Test {
get {
return test;
}
set {
test = value;
}
}
此属性在Page_Load()
中初始化为:Test = "JYM";
但问题是我无法在浏览器中看到此值。标记呈现为<span/>
,但没有任何内容。
我做错了什么?
答案 0 :(得分:2)
您是否在Page.DataBind()
中致电Page_Load()
了?
您在嵌入式代码块中使用#
数据绑定运算符。绑定到控件的值只有在您从控件或页面调用DataBind()
之后才会显示(它将依次为页面上的每个控件调用它)。
如果您只想将值绑定到该单个标签控件,则可以调用jym.DataBind()
。
但我会建议为Label控件使用更具描述性的名称(id),以便在代码中更清楚地了解数据绑定的内容。
有关详细信息,请参阅this page。
更新(OP在评论中请求的额外信息)
所以你有3个选择:
1。 如上所述调用DataBind()。
2。 不要使用服务器端控件作为标签。只需使用纯HTML,然后您就可以使用以下语法:
<p><%= Test %></p>
3。 在后面的代码中设置标签的值。例如,在您的页面加载中,您可能具有以下内容:
protected void Page_Load(object sender, EventArgs e)
{
jym.Text = Test;
}
答案 1 :(得分:-2)
您可能想要使用&lt;%= this.Test%&gt;。你也可以这样做.jym.Text = Test;在页面加载evt。