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 に答える