我遇到的问题是我有多个嵌套母版页:
现在,因为只有一个表单可以有runat=server
,所以我把表单放在全局页面上(所以我可以处理登录,反馈等等)。
现在有了这个解决方案,我还必须把例如3级(见上文)方法,例如搜索也放在1级母版页上,但这会导致这个页面很重(用于开发)来自所有地方的代码,甚至是仅在单个页面上使用的代码(例如,更改电子邮件表单)。
有没有办法将onclick
事件中的此类方法(例如:ChangeEMail
)从第1级(全局母版页)委托给第3级(单页本身)。
更清楚:
我希望不必在后面的全局母版页代码上使用方法ChangeEMail
,但是想以某种方式“移动”它到实际使用它的唯一页面。它目前必须在全球主人身上的原因是全局主人有form runat=server
并且每个aspx页面只能有一个。
这样,构建代码会更容易(更合乎逻辑)。
已搜索但未找到有关处理此案例的任何一般信息,通常答案是:在母版页上有所有方法,但我不喜欢它。所以将它移动到特定页面的任何方式都会很棒。日Thnx
编辑也是同一件事的一部分......
另一方面 - 如何从主页面访问内容页面上的textbox1.text
?对此最好的做法是什么?
答案 0 :(得分:2)
如果将搜索按钮和文本框放在.aspx本身(级别3)上,事件处理程序也将进入页面(或其代码隐藏)。表单标记位于全局母版页(级别1)
并不重要关于你的第二个问题:你可以使用
var tb = this.FindControl("textbox1") as TextBox;