·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> asp.net WebForm程序删除.designer.cs文件之后的故事

asp.net WebForm程序删除.designer.cs文件之后的故事

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net WebForm程序删除.designer.cs文件之后的故事

1.介绍

正常情况下添加一个WebForm程序结构如下(命名为:myWebForm.aspx)

文件说明:.aspx文件:书写html代码部分,以及javascript,CSS等代码书写及引用

.aspx.cs文件:服务器端,使用C#代码处理客户端发过来的请求,做出相应的响应

.aspx.designer.cs文件:视图窗体创建文件,绘制在服务器端需要的控件,即相当于初始化的部分

现在的需求是:

将.aspx.designer.cs文件删除,在页面类里面添加一个在服务器端运行的控件Button和TextBox,当点击Button按钮时为TextBox赋值“Hello”,同时进行页面登录的校验.(当删除此文件后,在页面通过工具箱添加服务器端控件是会报错)如图:

所以我们要进行一系列的修改,重写一些方法,添加绑定事件,具体实施方法如下:

2.步骤

1.添加两个WebForm窗体,命名为:myWebForm.aspx 和 FormBase.aspx

2.在myWebForm.aspx文件内添加两个控件,代码如下

[html]view plaincopy
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="myWebForm.aspx.cs"Inherits="myWebapplication.myWebForm"%>
  2. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <htmlxmlns="http://www.w3.org/1999/xhtml">
  4. <headrunat="server">
  5. <title></title>
  6. </head>
  7. <body>
  8. <formid="form1"runat="server">
  9. <div>
  10. <%--添加两个控件,并添加runat="server"属性--%>
  11. <inputid="myTxt"type="text"runat="server"/>
  12. <inputid="myBtn"type="button"value="button"runat="server"/>
  13. </div>
  14. </form>
  15. </body>
  16. </html>

3.删除文件,将两个窗体中的.aspx.designer.cs(将里面定义的控件变量语句可以先复制出来)

4.编辑FormBase.aspx文件,重写方法,代码如下:

[csharp]view plaincopy
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Web;
  5. usingSystem.Web.UI;
  6. usingSystem.Web.UI.WebControls;
  7. namespacemyWebApplication
  8. {
  9. publicpartialclassFormBase:System.Web.UI.Page
  10. {
  11. //所有继承此类的页面在打开前都会先运行此类里的Page_Load方法
  12. //更改方法的修饰符
  13. PRivatevoidPage_Load(objectsender,EventArgse)
  14. {
  15. //dosomethings
  16. //可以在此处进行页面登录校验处理
  17. }
  18. //重写OnInit
  19. overrideprotectedvoidOnInit(EventArgse)
  20. {
  21. InitializeComponent();
  22. base.OnInit(e);
  23. }
  24. privatevoidInitializeComponent()
  25. {
  26. this.Load+=newSystem.EventHandler(this.Page_Load);
  27. }
  28. }
  29. }

5.编辑myWebForm.aspx,继承FormBase,并重写方法,为页面类的控件添加事件

[csharp]view plaincopy
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Web;
  5. usingSystem.Web.UI;
  6. usingSystem.Web.UI.WebControls;
  7. namespacemyWebApplication
  8. {
  9. publicpartialclassmyWebForm:FormBase
  10. {
  11. protectedSystem.Web.UI.HtmlControls.HtmlInputTextmyTxt;
  12. protectedSystem.Web.UI.HtmlControls.HtmlInputButtonmyBtn;
  13. //重写OnInit
  14. protectedoverridevoidOnInit(EventArgse)
  15. {
  16. InitializeComponent();
  17. base.OnInit(e);//调用父类的OnInit
  18. }
  19. //添加事件
  20. privatevoidInitializeComponent()
  21. {
  22. //为页面类的id为myBtn的Button添加事件
  23. this.myBtn.ServerClick+=newEventHandler(myBtn_ServerClick);
  24. //this.Load+=newSystem.EventHandler(this.Page_Load);
  25. }
  26. protectedvoidPage_Load(objectsender,EventArgse)
  27. {
  28. if(!Page.IsPostBack)
  29. {
  30. //页面第一次加载时会运行里面的方法
  31. //通过点击提交表单的时候不会运行里面的方法
  32. }
  33. }
  34. privatevoidmyBtn_ServerClick(objectsender,EventArgse)
  35. {
  36. //当点击button时会触发此事件
  37. strings="Hello";
  38. myTxt.Value=s;
  39. }
  40. }
  41. }

6.效果,运行此界面,点击button文本框会显"Hello字样"

7.总结

1.删除多余的文件

2.通过继承的方式对每个页面进行登录校验

3.等等