.net学习笔记
时间:2011-01-09 来源:superfeeling
2.通常情况下,如果不是要求每次加载页面都执行一遍绑定代码,将绑定控件数据的代码放在!IspostBack中。另外如果在Page_Load中绑定TextBox\Button\DropDownList等,不管是否放在!IsPostBack中,页面都会顺利执行,不会出错,例外情况是,如果在Page_Load中绑定了Repeater控件,同时没有放在!IsPostBack中,页面执行则会出错:回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
3.在执行SQL语句时,尽量用参数化的SQL语句执行,在SQL参数中指定了参数类型后不用过滤单引号,只需判断对应的参数是否为相应的数据类型即可,即字符参数为字符,数字参数为数字。如果直接拼接SQL语句,如下例:SELECT * FROM NewsClass WHERE ClassName = ''公司动态',则会出错。
4.URI对象示例
view plaincopy to clipboardprint?
01.Uri uri = Request.UrlReferrer;
02.Response.Write(string.Format("获取URI:{0}{1}", uri, "<br>"));
03.Response.Write(string.Format("获取URI的绝对路径:{0}{1}", uri.AbsolutePath,"<br>"));
04.Response.Write(string.Format("获取绝对URI:{0}{1}", uri.AbsoluteUri, "<br>"));
05.Response.Write(string.Format("获取服务器的DNS主机名或IP地址和端口号:{0}{1}", uri.Authority, "<br>"));
06.Response.Write(string.Format("获取URI的主机部分:{0}{1}", uri.Host, "<br>"));
07.Response.Write(string.Format("获取URI中指定的主机名类型:{0}{1}", uri.HostNameType, "<br>"));
08.Response.Write(string.Format("指示是否绝对URI:{0}{1}", uri.IsAbsoluteUri, "<br>"));
09.Response.Write(string.Format("获取文件名的本地操作系统表示形式:{0}{1}", uri.LocalPath, "<br>"));
10.Response.Write(string.Format("获取用问号分隔的绝对路径和Query属性:{0}{1}", uri.PathAndQuery, "<br>"));
11.Response.Write(string.Format("获取主机端口号:{0}{1}", uri.Port, "<br>"));
12.Response.Write(string.Format("获取URI中包含的任何查询信息:{0}{1}", uri.Query, "<br>"));
13.Response.Write(string.Format("获取此URI的方案名称:{0}", uri.Scheme));
Uri uri = Request.UrlReferrer;
Response.Write(string.Format("获取URI:{0}{1}", uri, "<br>"));
Response.Write(string.Format("获取URI的绝对路径:{0}{1}", uri.AbsolutePath,"<br>"));
Response.Write(string.Format("获取绝对URI:{0}{1}", uri.AbsoluteUri, "<br>"));
Response.Write(string.Format("获取服务器的DNS主机名或IP地址和端口号:{0}{1}", uri.Authority, "<br>"));
Response.Write(string.Format("获取URI的主机部分:{0}{1}", uri.Host, "<br>"));
Response.Write(string.Format("获取URI中指定的主机名类型:{0}{1}", uri.HostNameType, "<br>"));
Response.Write(string.Format("指示是否绝对URI:{0}{1}", uri.IsAbsoluteUri, "<br>"));
Response.Write(string.Format("获取文件名的本地操作系统表示形式:{0}{1}", uri.LocalPath, "<br>"));
Response.Write(string.Format("获取用问号分隔的绝对路径和Query属性:{0}{1}", uri.PathAndQuery, "<br>"));
Response.Write(string.Format("获取主机端口号:{0}{1}", uri.Port, "<br>"));
Response.Write(string.Format("获取URI中包含的任何查询信息:{0}{1}", uri.Query, "<br>"));
Response.Write(string.Format("获取此URI的方案名称:{0}", uri.Scheme));
获取URI:http://127.0.0.1:8019/admin/test.aspx?Action=AddClass
获取URI的绝对路径:/admin/test.aspx
获取绝对URI:http://127.0.0.1:8019/admin/test.aspx?Action=AddClass
获取服务器的DNS主机名或IP地址和端口号:127.0.0.1:8019
获取URI的主机部分:127.0.0.1
获取URI中指定的主机名类型:IPv4
指示是否绝对URI:True
获取文件名的本地操作系统表示形式:/admin/test.aspx
获取用问号分隔的绝对路径和Query属性:/admin/test.aspx?Action=AddClass
获取主机端口号:8019
获取URI中包含的任何查询信息:?Action=AddClass
获取此URI的方案名称:http
5.gridview无数据时显示空表头。
下面代码放在Page_Load的!IsPostBack中;
view plaincopy to clipboardprint?
01.if (NewsDs.Tables[0].Rows.Count == 0)
02.{
03. NewsDs.Tables[0].Clear();
04. DataRow dr = NewsDs.Tables[0].NewRow();
05. NewsDs.Tables[0].Rows.Add(dr);
06. GridView1.DataSource = NewsDs;
07. GridView1.DataBind();
08. GridView1.Rows[0].Cells.Clear();
09. GridView1.Rows[0].Cells.Add(new TableCell());
10. GridView1.Rows[0].Cells[0].ColumnSpan = 5;
11. GridView1.Rows[0].Cells[0].Text = "没有记录";
12. GridView1.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
13. GridView1.FooterRow.Visible = false;
14.}
15.else
16.{
17. GridView1.DataSource = NewsDs;
18. GridView1.DataBind();
19.}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaojie_cp/archive/2010/09/19/5893885.aspx