2008/03/27

2007 Microsoft Worldwide Partner Conference

去年到美國Denver參加了微軟2007年全球夥伴會議的照片,好不容易整理完成,請慢慢欣賞囉!
20070708_0716_Microsoft Worldwide Partner Conference

如何取得HTML物件的大小

常常在透過DHTML來動態處理Browser頁面上物件的配置時,除了物件位置的取得外,時常也需要知道其他物件的大小,來計算其相對的位置所在.
然而在取得HTML物件的大小,即Width和Height的數值時,方式上可以區分以下幾種:

1.透過Tag中所設定的Attribute取得:例如<table width=100>....
<script>
var t = document.getElementById("table id");
var w = t.width;
</script>
(但這樣的方式,不一定所有Tag皆有Width的Attribute,而且所取得的Width不代表真正該物件在頁面上實際的Pixel寬度,例如上面的table會受cellpadding、cellspacing、border等等的影響)

2.透過style.width的Property取得:
<script>
var t = document.getElementById("table id");
var w = t.style.width;
</script>
(不過這樣的方式,必須是在Tag當中有使用Style的方式來設定width的屬性,否則此方式無效;另外,如同第1種方式,所取得的Width不代表真正該物件在頁面上實際的Pixel寬度)

3.透過offsetWidth的Property取得:
<script>
var t = document.getElementById("table id");
var w = t.offsetWidth;
</script>
(這樣的方式,是目前較常用的方式)

雖然上述第3種似乎解決了另外第1、2種方式的問題,但也不是所有情況都適用.最常發生的問題,就是當物件本身的style.display屬性為none時(這是最常應用在動態隱常或顯示物件的技巧之一),第3種方式則無法取得正確的width數值.

2008/03/23

TaKao小徑車會師活動(高雄光榮碼頭)

幾週以前,透過mobile01社群針對小輪徑車為主題發起的會師活動,終於在2008.3.23圓滿成功!當天總計超過100多輛的小徑車,總共應該也有超過好幾百萬的價值吧,分成幾列排排站,場面真的非常壯觀,也是到目前為止親眼見過最多的小徑車!












更多照片請看這裡

2008/03/16

2008台北自行車展

3/15特地前往台北參加2008年的自行車展,也因為搭乘高鐵附贈6歲以下兒童免費搭乘,所以也順道帶兒子北上到外婆家一日遊,讓老婆放假一天,這樣的行程也因現代交通與資訊的發達,在以往是想都沒想過的行程安排;) 當天晃了4個小時,總算攤位都『走』過一遍!二千多個攤位,就是這樣的陣仗,總之,也算開一次眼界,更高興台灣自行車的發展如此驚人,真的眼見為憑啊!照片就不說明了,請大家自行欣賞囉! (照片太多,整理好再PO上來)

















2008/03/10

如何動態新增Javascript Script

在DHTML的程式撰寫上, 常常利用<script>來執行相關Client端的程式化動作, 但如果要在Client端來動態產生<script>的程式段, 又要如何來做? 請參考以下程式範例:

var script = document.createElement('script');
script.setAttribute('type','text/javascript');
script.text = 'alert("hello!");'; // 主要的Javascript Code, 但是要記得是以文字字串組成
document.body.appendChild(script);

2008/03/09

高雄捷運開通的感動!

期待以久的高雄捷運終於在今天2008/3/9開通了!
如同當初高鐵開辦民眾試乘, 同樣今天攜家帶眷, 也前往搭乘驗收:)
在站進捷運車廂的一刻, 彷彿時空變換, 似乎已往習慣在台北可以享受到的市民福利, 就在今天也讓同樣體驗的高雄市民們, 心中燃起了無比的光榮感!看到一些扶老攜幼的民眾們的熱情與好奇, 在我心中確是無比激動, 因為我認為長期重北輕南的發展, 今天的成果算是遲來了!也相信高雄未來會更好!
在這次的體驗過程中, 發生了一段插曲, 就是途中剛好有一位年約80的老阿伯上車後, 好不容易在擁擠的乘客中挪動到我座位前, 對於年輕的我來說, 當然二話不說的起身讓位, 此時的我看著這位老阿伯, 那刻意的打扮(穿西裝, 打領帶), 一定不是老阿伯平時的穿著, 但他也慎重的一起參與這個高雄人的重要大事, 想想, 至少在這位老阿伯有生之年, 也算還來的及親身見證這個高雄的改變, 真讓我心中有莫名的欣慰!
本想多拍幾張照片分享, 無奈人真的太多了, 另一方面也高興到忘記拍了.
目前開通一個月, 搭乘完全免費, 找個一天給自己來個捷運之旅, 每站逛逛, 感覺特別不同, 收費後, 應該就不太會這麼做吧:)

2008/03/06

如何取得HTML物件的位置

對於Web Client Programming來說, 如何取得HTML物件的位置, 是時常會需要用到的技巧.
如果HTML物件本身透過Style屬性來設定top或left的數值, 或許可以用下列方式直接取得:

function getTop(el)
{
return obj.style.top;
}

但, 針對沒有設定Style屬性的物件, 方式上就需要改變下列方式:

function getTop(el)
{
var top = 0;
while (el) {
top += el.offsetTop;
el = el.offsetParent;
}
return top;
}

以上, 取得Left位置的做法相同, 就請自行試試看!

[原來如此]之Web Controls的ViewState無法保存

以下兩段子控制項的處理,會造成ViewState的結果不同(前者在Table Cell的Text無法Keep於ViewState中,後者才是正解) :

(1)
protected void Page_Load(object sender, EventArgs e)
{
Table t1 = new Table();
t1.Rows.Add(new TableRow());
t1.Rows[0].Cells.Add(new TableCell());
if (!this.IsPostBack)
{
t1.Rows[0].Cells[0].Text = "Text";
}
this.Controls.Add(t1);
}

(2)
protected void Page_Load(object sender, EventArgs e)
{
Table t1 = new Table();
this.Controls.Add(t1);
t1.Rows.Add(new TableRow());
t1.Rows[0].Cells.Add(new TableCell());
if (!this.IsPostBack)
{
t1.Rows[0].Cells[0].Text = "Text";
}
}

以上對於.NET元件開發上, 非常重要哦! 花了我8個小時的小差異大問題!

2008/03/02

2008.03.01萬人崇Bike活動

感謝許多夥伴在活動前一天透過簡訊和email的鼓勵,讓我收到大夥的加持,順利完成這2008年度參與的第一個自行車活動!也希望透過這次的騎福活動,保佑大夥們今年事事順心愉快,再大的困難都能迎刃而解!

AM 08:30於大甲體育場匯集約5000輛來自全國的熱情車友
AM 09:30準備出發的盛況,塞車中…..(目前為止親眼看到最多自行車的一天)
AM 10:07金氏世界紀錄統計站,我通過時正數到第1300部(已經破去年紀錄了,今年呢?往下看)

AM 11:45終於再回到大甲體育場,此時我前面回來的不到5位(哈!勇腳都參加130km挑戰組了)
AM 11:54領取破紀錄證書,今年紀錄2152部

這次去程拜順風的關係,偶有超過40Km/h的速度,應該去程均速有35km/h。不過回程就是大逆風,所以速度不到20Km/h,整體完騎時間還算ok,真的大夥一起騎,感覺比較不累。

這次活動,感受最深的還是自行車同好們的『熱情』!一部一部的遊覽車,載滿來自台北、高雄的眾多車友,我知道也有一大清早,直接搭台鐵到大甲的,而我也是舉家前一天就進駐台中。這都不是為了什麼獎品之類的目的,我想每個人對於本次活動的花費,早就不是那200元報名費可以比較的,但我想為的應該就是大家一同騎車的熱情與期待!還有看到不少大人小孩一同參與的雙人組、情侶鴛鴦組、全家出動組等等。

再分享一張活動前一晚,除了自行車的裝備外,還有其他的配備,有人比我誇張的可以交流一下: