利用继承解决每个 cs 文件的数据绑定问题
最近开始一个新的项目,几乎每个页面的 page_load 事件里都要写
Page_Load
PageBase
Bind()
Page_Load
1
protected void Page_Load(object sender, EventArgs e) {
2
if (!this.IsPostBack)
3
Bind();
4
}
protected void Page_Load(object sender, EventArgs e) {2
if (!this.IsPostBack)3
Bind();4
}于是我想到
PageBase 1
public class PageBase : System.Web.UI.Page
2
{
3
protected void Page_Load(object sender, EventArgs e) {
4
5
if (!this.IsPostBack)
6
Bind();
7
}
8
9
protected void Page_Error(object sender, EventArgs e) {
10
Exception ex = Server.GetLastError();
11
//异常处理
12
Server.ClearError();
13
}
14
15
protected virtual void Bind() { }
16
}
17
public class PageBase : System.Web.UI.Page2
{3
protected void Page_Load(object sender, EventArgs e) {4

5
if (!this.IsPostBack)6
Bind();7
}8

9
protected void Page_Error(object sender, EventArgs e) {10
Exception ex = Server.GetLastError();11
//异常处理 12
Server.ClearError();13
}14

15
protected virtual void Bind() { }16
}17

然后在每个页面里继承自该 PageBase , 删掉 vs 自动生成的 Page_Load(object sender, EventArgs e) , 再重写 Bind() 方法:
Bind()1
protected override void Bind() {
2
TextBox1.Text = "测试用例";
3
throw new Exception("用例错误!");
4
}
5
protected override void Bind() {2
TextBox1.Text = "测试用例";3
throw new Exception("用例错误!");4
}5

运行一下,页面都正常。



浙公网安备 33010602011771号