小知识小结
今天学了点小东西,其实这也就是一些小技巧,平时没有做总结,今天小结一下:
一、数据绑定的格式问题:
一个商品的价格(1000),我们平时做数据绑定时,一般都这样<%#Evalu("Price")%>,值显示出来一般都是1000,今天要求显示的格式为1,000.00,像这样的格式,以前是先对这个价格进行处理之后再进行绑定,后来发现没有这个必要,只需要这样<%#Evalu("Price","{0:N2}")%>,呵呵,如果真这样就错了,格式{0:N2}只对数字起作用,所以显示的结果还是1000,既然这样,就把数据格式转换一下不就行了?所以最后写成这样<%#string.Format("{0:N2}",Convert.ToDouble(Evalu("Price")))%>,OK,显示的最终结果为1,000.00,问题解决。再啰嗦一下,这里主要用到的是string.Format("{0:N2}",object),像数据格式有很多种,大家可以了解一下:{0:C}{0:D}{0:E}}{0:F}{0:G}{0:N},详细的大家可以查一下msdn,有了这些,大家就再也不用害怕数据格式的问题了。
二、今天由于需要,要知道Repeater控件的数据绑定行的索引进行处理,这个控件不像GridView一样可以直接访问,要用<%#Container.ItemIndex%>这个来访问,我们现在大多的数据绑定都这样写<%#Eval("Name")%>,都很少用Container了,有时要根据需要用不同的绑定方法才行了。
OK,今天就到此了,以后再总结,积少成多!
--2008年11月30日21时20分
事情是这样的,用户在登陆时我将用户的名称用cookie保存,然后在欢迎页面上读用户名称的cookie值,在页面上显示。问题是:我在开发环境上写cookie值和读cookie值均没有问题,当发布后送到服务器上时,用户的名称显示为乱码,后来发现原因是写cookie值是没有编码,所以导制乱码,我觉得正确的写法为:
写cookie:
string cookieValue= System.Web.HttpContext.Current.Server.UrlEncode("测试值");
System.Web.HttpCookie cookie = new HttpCookie("test",cookieValue);
cookie.Expires = DateTime.Now.AddMonths(1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
读cookie:
string cookieValue= System.Web.HttpContext.Current.Server.UrlDecode(System.Web.HttpContext.Current.Request.Cookies["test"].Value);