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文件内添加两个控件,代码如下
- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="myWebForm.aspx.cs" Inherits="myWebApplication.myWebForm" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <%--添加两个控件,并添加runat="server"属性--%>
- <input id="myTxt" type="text" runat="server" />
- <input id="myBtn" type="button" value="button" runat="server" />
- </div>
- </form>
- </body>
- </html>
3.删除文件,将两个窗体中的.aspx.designer.cs(将里面定义的控件变量语句可以先复制出来)
4.编辑FormBase.aspx文件,重写方法,代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- namespace myWebApplication
- {
- public partial class FormBase : System.Web.UI.Page
- {
- //所有继承此类的页面在打开前都会先运行此类里的Page_Load方法
- //更改方法的修饰符
- private void Page_Load(object sender, EventArgs e)
- {
- //do somethings
- //可以在此处进行页面登录校验处理
- }
- //重写OnInit
- override protected void OnInit(EventArgs e)
- {
- InitializeComponent();
- base.OnInit(e);
- }
- private void InitializeComponent()
- {
- this.Load += new System.EventHandler(this.Page_Load);
- }
- }
- }
5.编辑myWebForm.aspx,继承FormBase,并重写方法,为页面类的控件添加事件
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- namespace myWebApplication
- {
- public partial class myWebForm : FormBase
- {
- protected System.Web.UI.HtmlControls.HtmlInputText myTxt;
- protected System.Web.UI.HtmlControls.HtmlInputButton myBtn;
- //重写OnInit
- protected override void OnInit(EventArgs e)
- {
- InitializeComponent();
- base.OnInit(e);//调用父类的OnInit
- }
- //添加事件
- private void InitializeComponent()
- {
- //为页面类的id为myBtn的Button添加事件
- this.myBtn.ServerClick += new EventHandler(myBtn_ServerClick);
- //this.Load += new System.EventHandler(this.Page_Load);
- }
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!Page.IsPostBack)
- {
- //页面第一次加载时会运行里面的方法
- //通过点击提交表单的时候不会运行里面的方法
- }
- }
- private void myBtn_ServerClick(object sender, EventArgs e)
- {
- //当点击button时会触发此事件
- string s = "Hello";
- myTxt.Value = s;
- }
- }
- }
6.效果,运行此界面,点击button文本框会显"Hello字样"
7.总结
1.删除多余的文件
2.通过继承的方式对每个页面进行登录校验
3.等等
asp.net WebForm程序删除.designer.cs文件之后的故事的更多相关文章
- ASP.NET -- WebForm -- .aspx与.aspx.cs文件
ASP.NET -- WebForm -- .aspx与.aspx.cs文件 1. ASP.NET -- WebForm(C#)文件 .aspx文件:是Html页面,页面的布局,样式在该文件中设计. ...
- aspx文件、aspx.cs文件、aspx.designer.cs文件之讲解
.aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件中. .aspx.cs文件:(代码隐藏页)书写类代码.存储的是程序代码.一般存放与数 ...
- 为何没有.aspx.designer.cs文件?
designer.cs 是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分 ...
- Asp.net WebForm 中无法引用App_Code文件夹下的类
在VS2013中新建asp.net webform应用程序,手动添加"APP_Code"文件夹并新建类文件,发现这些类无法在APP_Code文件夹以外被引用. 解决办法: 选中类文 ...
- asp.net应用程序脱机app_offline.htm文件
This application is currently offline. To enable the application, remove the app_offline.htm file fr ...
- asp.net 网站 发布时 去掉.cs文件
VS2013在WIN8下扁平的UI和我今天锈垢的大脑,让找这个设置找了好半天!!! OK,言归正传. 在要发布的网站上右键,选择"发布网站". 在发布窗口中,会让你选择 ...
- 关于aspx.designer.cs
.aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件 ...
- 关于aspx.designer.cs的研究
.aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件 ...
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
.net mvc 站点自带简易SSL加密传输 因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...
随机推荐
- Java如何查看死锁
Java中当我们的开发涉及到多线程的时候,这个时候就很容易遇到死锁问题,刚开始遇到死锁问题的时候,我们很容易觉得莫名其妙,而且定位问题也很困难. 因为涉及到java多线程的时候,有的问题会特别复杂,而 ...
- golang build 的简单用法.(菜鸟初学)
1. golang 里面的 go build 可以编译代码. go build helloworld.go 2. 这里面有一个注意事项事项. 如果引用非go语言的 内置package的话 需要在环境变 ...
- Qt Lighthouse学习(二),就是QPA(Qt Platform Abstraction) 项目的名字
上一次关注Qt Lighthouse是在6月初,可是现在都8月底了.时间真快... Lighthouse 是 QPA(Qt Platform Abstraction) 项目的名字,它使得将Qt移植到新 ...
- 在Android上使用Socket
原文地址:http://www.cnblogs.com/kross/p/3621952.html 考虑到以后可能要用到这方面的知识,就来写个Demo尝试下,其实以前学过,但不记得了……(用不到的东西各 ...
- Android自动化之旅—生成渠道包
美团Android自动化之旅—生成渠道包:http://tech.meituan.com/mt-apk-packaging.html Android Studio系列教程六--Gradle多渠道打 ...
- 通过域名访问部署在服务器上的javaweb项目
因为对域名访问什么也不了解,遇到问题就有种不知道从哪里下手的茫然,也就更不知道错在哪里,前前后后一共折腾了一天多,最后问了阿里客服才成功弄出来,因此记录一下. 关于服务器的购买.配置,及域名的备案解析 ...
- MT【116】三个点动起来
评:当若干个变量时抓住主变量,立体几何问题平面化.
- 【2018ICPC沈阳】
哈密顿距离转切比雪夫距离,多种颜色跟两种颜色没有区别,记录最大最小次大次小即可. 圆求交点.
- Mininet 系列实验(六)
写在前面 这次实验遇到了非常多问题,非常非常多,花了很多时间去解决,还是有一些小问题没有解决,但是基本上能完成实验.建议先看完全文再开始做实验. 实验内容 先看一下本次实验的拓扑图: 在该环境下,假设 ...
- 【bzoj1833】 ZJOI2010—count 数字计数
http://www.lydsy.com/JudgeOnline/problem.php?id=1833 (题目链接) 题意 求在${[a,b]}$范围内整数中,每个数码出现的次数. Solution ...