从ASP.net中的用户控件访问页面上的文本框

Met*_*dam 10 c# asp.net user-controls

我有一些略有不同的页面,但都有相同的"操作按钮",每个页面执行相同的任务.我没有复制代码,而是创建了一个用户控件,其中包含执行操作的按钮 - 但是我似乎无法执行一项操作.

每个页面都有一个文本框(不在用户控件内,因为它位于页面的不同位置).当我单击"保存注释"按钮(在用户控件中)时,我似乎无法访问文本框中的文本.

我试过用这样的东西:

TextBox txtComments = (TextBox)this.Parent.FindControl("txtComments");
SaveChanges(txtComments.Text);
Run Code Online (Sandbox Code Playgroud)

...但是txtComments返回null.

所以,我想知道这是否可行,或者是否有更好的方法来做我想做的事情?

编辑:文本框位于原始页面的占位符中...

编辑2:发布缩小的解决方案 - 仍然无法弄清楚这个.

编辑3:删除解决方案以节省空间 - 解决了问题.

Met*_*dam 7

我的解决方案最终变得非常简单....

TextBox txt = this.Parent.Parent.FindControl("ContentPlaceHolder2").FindControl("TextBox1") as TextBox;
if (txt != null) Label1.Text = txt.Text;
Run Code Online (Sandbox Code Playgroud)

之前我出错的地方是我使用了错误的ContentPlaceHolder ID.我正在使用页面中占位符的ID,而不是母版页中的ID.