[2011-10-31]小知识点一

项目中经常遇到各种各样的小知识点,每当有空时便整理一下,养成一个好的习惯也许可以从这里开始。

今天整理了3个小知识点,如下:

1.SQL

Insert into TableA Select * from TableB

这里的A表和B表具有相同的列。

2.C#

有时需要从后台返回脚本到前台,并执行脚本,这里有一种写法参考:

System.Web.UI.ScriptManager.RegisterClientScriptBlock(page, page.GetType(),JsKey, strJs, true); 

参数解释:page 为页面对象 即System.Web.UI.Page类的实例

              JsKey 为脚本标识 通常赋空字符串即可

     strJs 脚本内容

     ture 标识要包含在<script></script>标签中

3.jQuery

经常需要在页面上进行一些计算,比如从数据库查询出了数量和单价,然后要计算每个商品的总价,这里可以用下面的方法进行计算。

$(document).ready(function() {
    $(".amount").each(function() {
            var id = $(this).attr("id");
            setPrice(id);
        });
    });
    function setPrice(id) {
        var count = parseInt($(".proCount" + id).text());
        var price = $(".price" + id).val();
        var amount = (price * count).toFixed(2);
        $("#amount" + id).text(amount);
    }

.each(函数) 这是jQuery里的迭代函数。

这里以3个CSS类选择器来标识页面上的3列,根据类选择器获取每个商品的数量和价格,再进行计算,最后保留两位小数。

4.JQuery取Json数据

a.如果服务端传回的数据为JSON格式

服务端:string json = JsonConvert.SerializeObject(obj);

客户端:var json = <%= json %>;

            $.each(json,function(key,obj){

      document.writeln("订单编号:"+obj.OrderId+" 顾客: "+obj.CName);

    });

b.如果服务端传回的是JSON格式的字符串

服务端:string json = "{Array1:[{\"OrderId\":\"210121\",\"CName\":\"ceshi\"},{\"OrderId\":\"112132\",\"CName\":\"shangpin\"}]}";

客户端:var json = <%= json %>;

           var dataObj = eval(json);

    $.each(dataObj.Array1,function(key,obj){

      document.writeln("订单编号:"+obj.OrderId+" 顾客: "+obj.CName);

    });

5.无冲突使用$作为JQuery的别名

jQuery.noCoflict();

(function($){

  $(function(){

    //jQuery代码,依然使用$作为别名

  });

})(jQuery);

6.static readonly & const

static readonly 与const 相似,const本身为静态常量,并且是编译期静态常量,不可在构造函数中赋值(不能用new关键字),可以用于局部变量。

static readonly是运行期静态常量,可以在构造函数中赋值(可以用new关键字),但不可用于局部变量或类的属性。均通过类名访问。

7.将一个字典集合转换为一个字符串,并且格式为[name=value&name=value]

 Dictionary<string,string> keyvalues = new Dictionary<string,string>();
 keyvalues.Add("1","hello");
 string kvs =  string.Join("&",
                                       (from kv in keyvalues
                                        let item = kv.Key + "=" + HttpUtility.UrlEncode(kv.Value)
                                        select item).ToArray());

8.给网站指定域名

修改 C:\Windows\System32\drivers\etc\hosts 文件,

增加一个映射条目:127.0.0.1 www.test.com 即可。

9.数据库备份

View Code
1 DECLARE @strPath NVARCHAR(200)
2 set @strPath = convert(NVARCHAR(19),getdate(),120)
3 set @strPath = REPLACE(@strPath, ':' , '.')
4 set @strPath = 'F:\bak\[DataBaseName]\'+@strPath + '.bak'
5 BACKUP DATABASE [DataBaseName] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

10.编码问题

在JavaScript中推荐的做法是用encodeURI对URI的网址部分编码,用encodeURIComponent对URI中传递的参数进行编码

在C#中推荐的做法是用Uri.EscapeUriString对URI的网址部分编码,用Uri.EscapeDataString对URI中传递的参数进行编码

11.判断是否为IE浏览器

 if (! -[1, ])

12.字段值重复的取ID最大的记录SQL

select * from test a
where not exists (
select 1 from test
where USERNAME=a.USERNAME
and id>a.id)

13.局部更新Repeater   content为包含repeater的div唯一编号(ID)

$("#content").load("WorkItemInfo.aspx?WorkItemName="+escape(workItemName)+"&Action=select"+"#p-Getting-Started #content");  

14.避免发送请求缓存

在发送请求的同时传入时间戳 '&timer='+(new Date).getMilliseconds()

----------------------------------------------------------END------------------------------------------------------------

 

posted @ 2011-10-31 19:36  WILLPAN  阅读(423)  评论(0编辑  收藏  举报