Asp.Net 应用小结
Asp.Net 应用小结
VS2005调试JavaScript脚本
- IE - Tools - Options - Advanced 清除两个选项:
Disable Script Debugging (Internet Explorer)Disable Script Debugging (Other)
- VS2005 IDE - F5 to run the ASP.NET program.或者用IE浏览个画面,然后用 Ctrl+Alt+P Attach IE这个Process.
- VS2005 IDE - Ctrl-Alt-N to show the the Script Explorer 得到Render后的Html Source.
- IE - View - Script Debugger - Open
- IE - View - Script Debugger - Break at Next Statement 此后,操作Web Page,有脚本执行时,VS2005 IDE中就会显示脚本,可以单步执行、查看变量值等。
停止页面缓存
在一个可输入数据的Aspx Page中,用户输入新的数据内容并提交,并跳转到新的Page,之后,如果在URL栏输入刚才那个输入画面的URL,可能发现数据内容还是原先输入修改之前的旧数据。为防止这一点,可以使用如下代码避免IE缓存:
1
2
3
4
5
protected override void OnInit(EventArgs e)
{
Response.CacheControl = "no-cache";
base.OnInit(e);
}
ViewState存放不可序列化对象
ViewState 中只能保存可以序列化的实例,可是 ADO.NET 的 DataRow 不能序列化,但是有时又需要放在 ViewState 中。
有一个变通方法:
- 存:将
DataRow实例的ItemArray属性放进ViewState取:先用DataTable.NewRow得到一个新的DataRow实例,再设置其ItemArray属性值为Session或者ViewState中的变量内容,即可”还原”出那个DataRow。
存:1
this.ViewState.Add(viewStateKeyNameUser,JobWebContext.User.User.ItemArray);
取:
1 2
USERRow user = (USERRow)(new USERDataTable()).NewRow(); user.ItemArray = (object[])this.ViewState[viewStateKeyNameUser];
- 写一个包装器存
DataTable.DataTable可以被序列化。将DataRow放入DataTable。存DataTable到ViewState。
存:this.ViewState.Add(viewStateKeyNameUser,uer.Table); //uer 是一个USERRow
取:((USERDataTable)this.ViewState[viewStateKeyNameUser]).Rows[0];
Useful Tips
- Input html control close/open
style=”ime-mode:active”. - Control the text box paste
onbeforepaste="" paste ="".
This post is licensed under CC BY 4.0 by the author.