我需要使用db查询中的许多属性填充aspx页面。我知道怎么做是将属性分配给后面代码中控件的Text属性,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
string param = Request.QueryString["param"];
// p will have dozens of properties
M.P p = new M.P(param);
aLabel.Text = p.aProperty;
anotherLabel.Text = p.anotherProperty;
在aspx代码中:
<asp:Label ID="aLabel" runat="server"></asp:Label>
<asp:Label ID="anotherLabel" runat="server"></asp:Label>
我想要做的是直接在aspx页面中绑定属性,而不需要在后面的代码中进行赋值,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
string param = Request.QueryString["param"];
M.P p = new M.P(param);
this.DataBind();
Value of the aProperty: <%# p.aProperty %>
Value of the anotherProperty: <%# p.anotherProperty #>
但是我遗漏了一些重要的东西,因为编译器给了我错误The name 'p' does not exist in the current context
。如何使它工作?
答案 0 :(得分:2)
你可能有这样的东西(p
被移动为属性)
<强> C#强>
protected M.P p {get; set;}
protected void Page_Load(object sender, EventArgs e)
{
string param = Request.QueryString["param"];
p = new M.P(param);
}
<强> ASPX 强>
<asp:Label ID="aLabel" runat="server"><%= p.aProperty %></asp:Label>
<asp:Label ID="anotherLabel" runat="server"><%= p.anotherProperty %></asp:Label>