Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web控件访问web表单方法_C#_Asp.net_Ascx - Fatal编程技术网

C# web控件访问web表单方法

C# web控件访问web表单方法,c#,asp.net,ascx,C#,Asp.net,Ascx,我的web表单包含一个web控件和一个asp:HiddenField。我正在尝试访问asxc.cs文件中的hiddenfield。我在aspx.cs文件中定义了一个公共get、set块。在web控件中,当我尝试调用ReportPage.TestID时,它无法识别ReportPage类。这是访问网络控制中隐藏字段的正确方式吗?如果是,我应该如何访问ReportPage类 public partial class ReportPage : System.Web.UI.UserControl {

我的web表单包含一个web控件和一个asp:HiddenField。我正在尝试访问asxc.cs文件中的hiddenfield。我在aspx.cs文件中定义了一个公共get、set块。在web控件中,当我尝试调用ReportPage.TestID时,它无法识别ReportPage类。这是访问网络控制中隐藏字段的正确方式吗?如果是,我应该如何访问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();
        }
    }
}

您无法从用户控件直接访问页面控件,原因是。简言之,ASP.NET首先编译
App\u code
(其类在所有站点上都可见),然后编译用户控件(
.ascx
),以及使用该控件的
.aspx
页面

解决方案如下所示:

  • App\u code
    中创建一个从
    Page
    类继承的抽象类(
    MyBasePage
    ),并添加抽象属性(
    TestID
  • 创建一个从
    MyBasePage
    继承的页面并实现该属性
  • .ascx.cs
    cast
    this.Page
    as
    MyBasePage
    中,使用所需的属性

  • 你必须向我们展示你用来调用它的代码。换句话说,我们需要一个。亲爱的选民,请解释。我解释的方法很有效。