三层架构的命名:
UI: User Interface (数据显示层 用户界面)
BLL:Business Logic Layer (业务逻辑层)
DAL:Data Access Layer (数据访问层)
Dao:Data Access Object (数据访问对象和数据访问层一个意思)
常用代码:
Clipboard.SetDataObject(textBox1.SelectedText); 复制数据到到粘贴板
this 不能调用 static 的方法,因为this是类属性
提交到ASP.NET的表单,一定要加 name
对多行文本加一个 @ 符号
<asp:Button>来讲,onclick是服务端事件,OnClientClick是客户端单击事件
<input>来讲(html页面),onclick就是客户端的单击事件
Codeehind: aspx控制页面长什么样子,cs判断业务逻辑
ClientScript.RegisterStartupScript(GetType(),"警告","alert(‘类型错误!‘)",true);
//注册页面加载的时候执行Javascript脚本,第二个参数是页面中唯一名称,最后一个true为自动添加script标签
cs可以调用aspx中的控件,aspx中也可以访问cs中定义的字段,函数,还可以编写复杂的C#代码,for等
所有C#代码都可以写在aspx中(不推荐),在aspx中 <% %> 包含的语句,就是C#代码
----- RegisterStartupScript() 与 RegisterClientScriptBlock() 服务端注册JS代码
RegisterStartupScript 方法将 <script> 块置于 Web 窗体的结尾处,以保证在执行客户端脚本之前已声明 Web 窗体中的所有 HTML 元素。
RegisterClientScriptBlock() 通过此方法发送的脚本块位于 Web 页面的开始处,因为这种方法不要求将脚本块置于所有 HTML 元素之后。
------ Form表单获取多个值
<input type="text" name="txtData" />
<input type="text" name="txtData" />
第一种:这个有问题,当用户在参数里面加","逗号时,将解析出多个数组
string[] count = Request.Form["txtData"].Split(‘,‘);
第二种:强烈推荐,解决用户传","逗号的问题
post提交用 Request.Form.GetValues()方法
get提交用 Request.QueryString.GetValues()方法
string[] count = Request.Form.GetValues("txtData"); // 表单默认是用post提交的
----- 遍历所有TextBox控件
Asp.net 不能像window那样直接遍历this.Controls就可以了,因为:
this.Controls只是包含了Page根一级的control,这样次级的control就都没有遍历
TextBox一般会放在form里面,遍历this.Controls只会访问form control,而不会访问form的子Contorl
下面使用递归对页面control树进行完全遍历
private void ResetTextBox(ControlCollection controls) { foreach (Control ctr in controls) { if (ctr.HasControls()) { ResetTextBox(ctr.Controls); } if (ctr is TextBox) { ((TextBox)ctr).Text = "OK"; } } } protected void Page_Load(object sender, EventArgs e) { // 调用 ResetTextBox(this.Controls); }