0

我需要用数据库查询中的几十个属性填充一个 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。如何让它发挥作用?

4

1 回答 1

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>
于 2012-07-06T16:44:43.350 回答