如果我将控件放在像这样的.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.MyButton时,我想将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;
有没有办法更改访问修饰符?
答案 0 :(得分:6)
您可以从设计器中删除声明并将其放在您的代码中。
声明周围的评论说要做到这一点。
/// To modify move field declaration from designer file to code-behind file.
答案 1 :(得分:2)
我考虑过的一个选择是写一个暴露原始页面的公共财产;
public TextBox PublicTextBox { get { return this.MyTextBox; } }
哪个可以完成工作,但看起来很糟糕。
答案 2 :(得分:1)