母版页,表单页,表单runat = server>母版页上的所有onclick方法?

时间:2010-05-22 21:38:19

标签: c# asp.net methods master-pages runatserver

我遇到的问题是我有多个嵌套母版页:

  • 等级1 :全局(页眉,页脚,登录,导航等...)
  • 级别2 :具体(搜索页面,帐户页面等)
  • 第3级:网页本身

现在,因为只有一个表单可以有runat=server,所以我把表单放在全局页面上(所以我可以处理登录,反馈等等)。

现在有了这个解决方案,我还必须把例如3级(见上文)方法,例如搜索也放在1级母版页上,但这会导致这个页面很重(用于开发)来自所有地方的代码,甚至是仅在单个页面上使用的代码(例如,更改电子邮件表单)。

有没有办法将onclick事件中的此类方法(例如:ChangeEMail)从第1级(全局母版页)委托给第3级(单页本身)。

更清楚: 我希望不必在后面的全局母版页代码上使用方法ChangeEMail,但是想以某种方式“移动”它到实际使用它的唯一页面。它目前必须在全球主人身上的原因是全局主人有form runat=server并且每个aspx页面只能有一个。

这样,构建代码会更容易(更合乎逻辑)。

thnx(希望我正确解释)

已搜索但未找到有关处理此案例的任何一般信息,通常答案是:在母版页上有所有方法,但我不喜欢它。所以将它移动到特定页面的任何方式都会很棒。日Thnx

编辑也是同一件事的一部分...... 另一方面 - 如何从主页面访问内容页面上的textbox1.text?对此最好的做法是什么?

1 个答案:

答案 0 :(得分:2)

如果将搜索按钮和文本框放在.aspx本身(级别3)上,事件处理程序也将进入页面(或其代码隐藏)。表单标记位于全局母版页(级别1)

并不重要

关于你的第二个问题:你可以使用

var tb = this.FindControl("textbox1") as TextBox;