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 " onkeydown= "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屬性
http://apps.hi.baidu.com/share/detail/886207
5.4、javascript的事件對象event
http://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.onload=function(){
document.getElementById("btn1").onclick=foo1
document.getElementById("btn2").onclick=foo2
document.getElementById("btn3").onclick=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" onclick="foo()">按鈕1</button>
<script>
function foo(){
alert(arguments[0] || window.event)
}
</script>
很不幸,我們 foo給我們的結果是 undefined, 而不是期望的 object
原因在於 事件綁定的方式
onclick="foo()" 就是直接執行了, foo() 函數,沒有任何參數的,
這種情況下 firefox沒有機會傳遞任何參數給foo
而 btn.onclick=foo 這種情況, 因為不是直接執行函數,firefox才有機會傳參數給foo
解決方案:
方法一:比較笨的方法,既然 firefox沒有機會傳參數,那麼自己勤快點,自己傳
<button id="btn" onclick="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>通過 Wiz 發布