1、二维数组初始化 int arr[5][6] = { { 0, 1, 2, 3, 4, 5}, {10,11,12,13,14,15}, {20,21,22,23,24,25}, {30,31,32,33,34,35}, {40,41,42,43,44,45}, }; 2、为dropdownlist增加数据 dropdownlist.Items.Add(new ListItem(arrtype[v1].ToString(),v1.ToString())); 3、动态创建DataTable 比如在做购物车的时候我们需要建立一个datatable,来存放一些购物车中的东西,最后在把他们写到数据库,下面是实现方法。 datatable dt=new datatable("cart"); datacolumn dc1=new datacolumn("prizename",type.gettype("system.string")); datacolumn dc2=new datacolumn("point",type.gettype("system.int16")); dt.columns.add(dc1); dt.columns.add(dc2); //以上代码完成了datatable的构架,但是里面是没有任何数据的 for(int i=0;i<10;i++) { datarow dr=dt.newrow(); dr["prizename"]="娃娃"; dr["point"]=10; } //填充了10条相同的记录进去 有人会这么做 datarow dr=new datarow(); ..... dt.rows.add(dr); 这样是不行的,因为一个datarow必定是属于一个datatable的,不能凭空建立,就好比一条记录一定是属于一个表一样 又有人这么做 datarow dr=dt.newrow(); dr["prizename"]="娃娃"; dr["point"]=10; for(int i=0;i<10;i++) { dt.rows.add(dr); } 这样做同样是错误的,因为datatable已经有这条datarow了,就好比一个表中不可能存在2条一样的记录,必须每次newrow() http://www.west263.com 4、将SELECT到的多行数据合并为一行,例如:SELECT COUNTRY_CODE FROM COUNTRY 结果: 101 102 要得到101;102; DECLARE @xml XML SET @xml=(SELECT (COUNTRY_CODE +';') FROM COUNTRY FOR XML PATH('')) SET @STR= CONVERT(NVARCHAR(MAX),@xml) 5、文本框输入回车后触发按钮 5.1. 添加函数searchFocus() ffunction searchFocus() { if(event.keyCode==13) document.all.btn1.focus(); } 5.2. 如果tb1是客户端控件 在aspx页面中写, <input id= "tb1 " οnkeydοwn= "javascript:searchFocus() " type= "text "> 如果是服务器端控件,可以用上面的写法或在后台cs文件的Page_Load()中写, tb1.Attributes.Add( "onkeydown ", "javascript:searchFocus() "); 5.3、 javascript中的caller、constructor caller: 返回一个对函数的引用,该函数调用了当前函数。对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null 。 http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html function callerDemo() { if (callerDemo.caller) { var a= callerDemo.caller.toString(); alert(a); } else { alert("this is a top function"); } } function handleCaller() { callerDemo(); } 结果:function handleCaller() { callerDemo(); } constructor: 把"实例化的对象".constructor 等于"被实例化的类" function Person(name){ this.name = name; } var lenel = new person("lenel"); alert(lenel.constructor === Person); 但是,对象的constructor属性并非指向其构造器,而是指向其构造器的prototype属性的constructor属性 5.4、 javascript的事件对象eventhttp://www.cnblogs.com/ashun/archive/2006/11/27/event_javascript_ie_firefox_gorush.html 在ie中,事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发 的,还是其他事件, 都会更新window.event 对象。 所以在代码中,只要轻松调用 window.event 就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处理 在ff中, 事件对象却不是全局对象,一般情况下,是现场发生,现场使用,ff把事件对象自动传 递给对应的事件处理函数。在代码中,函数的第一个参数就是ff下的事件对象了。 <button id="btn1">按钮1</button> <button id="btn2">按钮2</button> <button id="btn3">按钮3</button> <script> window.οnlοad=function(){ document.getElementById("btn1").οnclick=foo1 document.getElementById("btn2").οnclick=foo2 document.getElementById("btn3").οnclick=foo3 } function foo1(){ //ie中, window.event使全局对象 alert(window.event) // ie下,显示 "[object]" , ff下显示 "undefined" //ff中, 第一个参数自动从为 事件对象 alert(arguments[0]) // ie下,显示 "undefined", ff下显示 "[object]" }
function foo2(e){ alert(window.event) // ie下,显示 "[object]" , ff下显示 "undefined" //注意,我从来没有给 foo2传过参数哦。 现在 ff自动传参数给 foo2, 传的参数e 就是事件对象了 alert(e) // ie下,显示 "undefined", ff下显示 "[object]" }
function foo3(){ //同时兼容ie和ff的写法,取事件对象 alert(arguments[0] || window.event) // ie 和 ff下,都显示 "[object]" var evt=arguments[0] || window.event var element=evt.srcElement || evt.target //在 ie和ff下 取得 btn3对象 alert(element.id) // btn3 } </script> 看到这里,我们似乎对 ie和ff的事件处理方式都已经理解了,并找到了解决的办法。 但是。。。。事情还没有结束。 看代码 <button id="btn" οnclick="foo()">按钮1</button> <script> function foo(){ alert(arguments[0] || window.event) } </script> 很不幸,我们 foo给我们的结果是 undefined, 而不是期望的 object 原因在于 事件绑定的方式 οnclick="foo()" 就是直接执行了, foo() 函数,没有任何参数的, 这种情况下 firefox没有机会传递任何参数给foo 而 btn.οnclick=foo 这种情况, 因为不是直接执行函数,firefox才有机会传参数给foo 解决方法: 方法一:比较笨的方法,既然 firefox没有机会传参数,那么自己勤快点,自己传 <button id="btn" οnclick="foo(event)">按钮</button> <script> function foo(){ alert(arguments[0] || window.event) var evt=arguments[0] || window.event var element=evt.srcElement || evt.target alert(element.id) } </script>