Web控件访问Web表单方法

时间:2018-01-17 20:38:03

标签: c# asp.net ascx

我的网页表单包含一个网页控件和一个asp:HiddenField。我试图访问我的asxc.cs文件中的隐藏字段。我在我的aspx.cs文件中定义了一个public get,set block。在Web控件中,当我尝试调用ReportPage.TestID时,它无法识别Reportpage类。它是在webcontrol中访问HiddenField的正确方法吗?如果是这样,我应该如何访问ReportPage类?

public partial class ReportPage : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public int TestID
    {
        get
        {
            return Convert.ToInt32(TestIDHiddenField.Value);
        }
        set
        {
            TestIDHiddenField.Value = TestID.ToString();
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

由于Web Site compilation model,您无法直接从用户控件访问页面控件。简而言之,ASP.NET首先编译App_code(其类在所有站点中都可见),然后是用户控件(.ascx)以及使用该控件的.aspx页面。

解决方法如下所示:

  1. App_code中创建一个抽象类(例如MyBasePage),它继承自Page类并在示例中添加抽象属性(TestID),
  2. 创建一个继承自MyBasePage的页面并实现该属性
  3. .ascx.cs施放this.Page作为MyBasePage并使用您想要的属性。