代码之家  ›  专栏  ›  技术社区  ›  Steve Cooper

更改ASP.NET控件的访问修饰符

  •  6
  • Steve Cooper  · 技术社区  · 15 年前

    如果我像这样在.aspx文件中放置一个控件;

    <asp:TextBox ID="protectedTextBox" runat="server">Some info</asp:TextBox>
    

    我在页面的.aspx.designer.cs文件中得到一个声明的控件;

    protected global::System.Web.UI.WebControls.TextBox protectedTextBox;
    

    但是我想把控件的访问修饰符改为 public . 是否有任何属性或类似属性可以设置为更改访问修饰符?

    为什么? 我想做。我正在努力让跨页回发工作良好和整洁。我有两页:

    FirstPage.aspx
        MyTextBox : textbox
        MyButton  : button, @PostbackUrl=Secondpage
    
    SecondPage.aspx
        MyLabel : label
    

    FirstPage.MyTextBox.Text 进入 SecondPage.MyLabel.Text . 我可以用Page.FindControl来实现,但这似乎是一个糟糕的替代品,无法将上一页转换为FirstPage对象并直接引用上面的MyTextBox控件。像这样的东西;

    // on the page_load of SecondPage.aspx;
    var previousPage = this.PreviousPage as FirstPage;
    this.MyLabel.Text = previousPage.MyTextBox.Text;
    

    3 回复  |  直到 15 年前
        1
  •  6
  •   Robin Day    15 年前

    您只需从设计器中删除声明并将其放在代码中即可。

    围绕宣言的评论说要这样做。

    /// To modify move field declaration from designer file to code-behind file.
    
        2
  •  2
  •   Steve Cooper    15 年前

    我考虑过的一个选择是编写一个公开原始页面的公共属性;

    public TextBox PublicTextBox { get { return this.MyTextBox; } }
    

        3
  •  1
  •   user134706    15 年前

    Steve,如果您需要操作这些控件,则公开该页的控件是有意义的,但是在您的情况下,您只需要将一些数据(该字符串)传递给另一个处理程序,因此我将公开该控件,而不是控件本身。