aspx页面中的单值绑定

时间:2012-07-06 16:37:39

标签: c# asp.net data-binding

我需要使用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。如何使它工作?

1 个答案:

答案 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>