【问题标题】:Access hidden input variable from base class从基类访问隐藏的输入变量
【发布时间】:2009-08-05 18:54:19
【问题描述】:

我的 aspx 页面有:

<input type="hidden" id="txtHidden" runat="server" />

这个 aspx 页面有一个 ascx 控件(继承自 BaseUserControl),它调用基本用户控件类中的一个方法

base.SetHidden("test");

基本用户控件类(继承自 System.Web.UI.UserControl) 具有 SetHidden 定义

public void SetHidden(string s)
{
  //Here I need to get a reference to txtHidden and set it's value

}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    试试这个:

    public void SetHidden(string s)
    {
      HtmlInputHidden myHidden = (HtmlInputHidden)this.Page.FindControl("txtHidden");
      myHidden.Value = s;
    }
    

    【讨论】:

      【解决方案2】:

      您需要将页面引用转换为页面的实际类,然后您可以访问其中的控件:

      ((TheActualPageClass)Page).txtHidden.Value = s;
      

      【讨论】:

      • 转换的唯一问题是它要求控件知道它所在的页面并转换到该页面,从而创建了限制控件重用的依赖项。最好使用 Page.Form.FindControl
      【解决方案3】:

      试试这个:

      <input type="hidden" id="txtHidden" runat="server" />
      

      那么你应该可以在服务器端修改它。

      编辑:啊,我明白了。

      在您的控制下试试这个:

      Page.Form.FindControl("txtHidden")
      

      【讨论】:

      • 是的,我确实有 runat 属性(编辑过的原始帖子)。我仍然无法从基类访问 txtHidden
      猜你喜欢
      • 2016-04-05
      • 1970-01-01
      • 2023-04-08
      • 2013-01-16
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多