ADO.NET資料服務/Silverlight--建立用戶端應用程式
1.建立Silverlight專案的應用程式
a)在前文的方案中加入新專案,專案類型選擇「Silverlight 應用程式」
2.在專案中加入服務參考
a)「SilverlightClient」專案按滑鼠右鍵,選擇「加入服務參考」並按一下「探索」,隨即顯示前文建立的 Northwind 資料服務
b)輸入命名空間按下確定
這麼做會在專案中加入新的程式碼檔,包含存取資料服務資源做為物件並與之互動的資料類別。 資料類別建立在用戶端應用程式的預設命名空間中。
3.定義用戶端應用程式使用者介面
b)開啟MainPage.xaml並以下列定義應用程式使用者介面的標記取代原本的XAML
程式碼就不貼在這,因為即使用Blogger code block放置,還是限於silverlight無法被blogger看懂還出現奇怪的控制項=..=
程式碼解壓縮後找到SilverlightClient\VisualBasic\SilverlightClient\MainPage.xaml檔案,copy & paste即可!貼完code之後的XAML預覽如下圖
★步驟3b的程式碼在官方網站lost了,請大家去下載才可以把3b完成喔!
★參考網址
PS:後來發現3b不是lost,而是網頁本身有問題,網頁載入完成後那段XAML會看不見,如果懶得下載可以直接點選參考網址右上角的「輕量型」即可取得原版XAML!!
ADO.NET資料服務/Silverlight--建立Northwind資料服務
3.建立資料服務
a)在方案總管按右鍵,新增項目「ADO.NET 資料服務」
Visual Studio 將建立新服務的 XML 標記和程式碼檔,根據預設,程式碼編輯器視窗隨即開啟 Northwind 加上副檔名 .svc.cs 或 .svc.vb 的檔案
將「TODO: 以您的資料類別名稱取代 [[class name]]」 這一段註解,替換成你剛剛建立的資料模型型別,也就是 NorthwindEntities
替換完成後會長這樣Inherits DataService(Of NorthwindEntities)
4.啟用資料服務的存取
在InitializeServic函式加入下列4行程式碼,指定可以存取的實體
config.SetEntitySetAccessRule("Orders", EntitySetRights.All)
config.SetEntitySetAccessRule("Order_Details", EntitySetRights.All)
config.SetEntitySetAccessRule("Products", EntitySetRights.All)
ps:若全部開放則為config.SetEntitySetAccessRule("*", EntitySetRights.All)
5.測試
a) 按F5瀏覽器將自動開啟視窗
http://localhost:2616/northwind.svc
用IE6不能測試,請用IE7以上,用IE7以上及FF的人也請將RSS關閉,才能檢視下圖結果
b) 承上,輸入URI測試資料,傳回特定客戶 ALFKI 的全部訂單
★我們已經以 Northwind DB建立可存取的資料服務,並於 Web 瀏覽器中完成服務測試。 接下來要建立 Silverlight 用戶端應用程式專案,並在其中加入這個資料服務的參考:請看下一篇
★參考網址
強迫關閉視窗
1.使用checkVersion()判斷IE版本
2.如果是IE6就使用A()把頁面強迫關掉
3.如果是IE7則使用B()把頁面強迫關掉
//IE 6
function A() {
if (window.opener) {
} else {
window.opener = "null";
window.close();
}
}
//IE 7 or 8
function B() {
if (window.opener) {
} else {
window.open('', '_parent', '');
window.close();
}
}
function checkVersion() {
for (i = 0; i < 10; i++) {
for (z = 0; z < 10; z++) {
if (navigator.appVersion.match("MSIE " + i + "." + z) != null) {
y = i;
}
}
}
if (y == '7' || y == '8' ) { B(); }
else { A(); }
}
Smart Defrag
他不像XP內建的磁碟重組工具需要15%的空間才能重組,重組時電腦也不會lag
現在官方release的最新版本已經有繁體中文嚕,大家可以無痛上手,連Google用法都不必勒。
piggy還發現磁碟重組中的各類小方塊(下圖的目錄、MFT、碎片...等)可自定義顏色~真古錐XD
初學WCF
1.新增專案,選擇「Windows Form應用程式 」作為呈現WCF成果的介面
(命名為HelloWorldWinForm)
2.加入新網站,選擇「WCF服務」
(命名為HelloWorldService)
3.服務內容使用預設的HelloWorld範例,暫不更改service中的contract、operation...等
4.對HelloWorldWinForm按右鍵「加入服務參考」
(VSTS將自動為你搜尋可用的服務--*.svc檔)
5.於HelloWorldWinForm加入TextBox、Button各一
(為了測試HelloWorld第1個方法:input數字→output字串)
6.於Button_Click事件觸發第1個方法(GetData),程式碼如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myService As New HelloWorldService.ServiceClient
MessageBox.Show(myService.GetData(TextBox1.Text))
End Sub
7.按下F5,執行 成果如下
消失的Scroll Lock
話說公司用的這套Raritan蠻貼心的,可將預設的Scroll Lock自行更改為Num Lock或是Caps Lock,無奈Raritan在更改後無動於衷,只好回頭找尋Scoll Lock大爺的蹤影XD
後來找到2個方式:
1.Fn+Pause Break:因為我不是用NB..沒有Fn鍵,所以放棄
2.小鍵盤:有點虛不過至少KVM終於起反應勒,暫且一用,使用方法如下
叫出「執行」視窗並輸入「osk」,可愛小鍵盤就出現在你眼前,下圖的「slk」便是消失的Scroll Lock!
C# v.s VB對照表
C# VB
as CType
地圖輸出列印
之前參考viswaug先生的部落格有挖到寶,目前自動產生legend的測試情況是OK,不過還是使用C#,我打算進一步改寫為VB,並結合其他要一併動態輸出的物件!之後會陸續把code貼上來...
以下為viswaug部落格的相關參考資料
1.作者自行開發的緣由
2.實作的簡略說明
3.開發成果(原碼)
asp:Menu無法在IE8正常顯示
後來google找到很多網頁都是大同小異,列出一個我覺得不錯的給大家參考
解決方法寫得很詳細,就不多說勒~
上一半的課
沒想到微軟的小姐竟然以晚上還有人要用場地為由,硬生生把未完的課終止,有夠囧的!!沒想到大公司如微軟,其員工處理調度的手法竟如此粗糙Orz..
重點是該研討會的表定時間明明就是到5:30pm,就算真的有無法調度的苦衷好勒,可是老師也只提早上課5分鐘,竟然要老師提早半小時下課,這有天良嗎T^T
希望老師再補開一堂,不然「狀態」沒上到就好像SILVERLIGHT沒有升級到3一樣@"@
HongkongToolbar
非常適合我這香港控啦XXXD
by the way 古巨基的聲音真是令人印象深刻,久沒聽他的歌竟然還認的出來...pu
Toolbar下載網址
安裝Northwind資料庫
後來google一下發現不少資訊,最後還是選擇台灣微軟官方網站之說明(個人認為說明詳細且排版清晰易讀),參考一下網址按步操作即可
http://msdn.microsoft.com/zh-tw/library/ms165732(SQL.90).aspx
小抱怨一下,剛剛使用google的Post to Blogger!小工具,結果本篇文章只要是中文字的部分全部變成亂碼,看來Andy Monat先生沒有考慮到廣大亞洲user的需求...囧
懶懶的
不過這幾天終於可以好好研究SL,發現還需要不少其他技術輔助才能做出實用又炫麗的網站,希望接下來可以陸陸續續寫點東西嚕 : -)
無法檢視DBML
http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/af45e2b7-98c5-4e12-9bc9-890ae4d03542
在這邊註明一下我的錯誤訊息,因為piggy在尋求解答時發現用英文比較好找=..=,可能使用中文版的朋友們比較少在用LINQ吧~撲
中文版錯誤訊息:自訂工具 'MSLinqToSQLGenerator' 失敗。無法擷取目前的專案
英文版錯誤訊息:The custom tool 'MSLinqToSQLGenerator' failed. Could not retrieve the current project.
以下簡單說明一下solution
1.使用Visual Studio Tools裡面的「Visual Studio 2008 Itanium Cross Tools 命令提示字元」
2.輸入devenv /ResetSkipPkgs後按下enter
3.收工
此時VSTS已經被修復並且會重新開啟,這時候再去新增一次LINQ類別就會是下面漂亮的畫面勒
共用事件處理常式
首先列出可以共用的事件處理常式如下(以下簡稱H)
Protected Sub HyperLinks_Load(ByVal sender As Object, ByVal e As System.EventArgs)
'因為這邊的物件都是hyperlink我就偷懶不做轉型,直接以其Text屬性動態產生zip檔名
Dim pathToCheck As String = "../download/" & sender.Text & ".zip"
If (System.IO.File.Exists(Server.MapPath(pathToCheck))) Then
'檔案路徑存在,將hyperlink之sender.NavigateUrl指定為動態產生的pathToCheck
sender.NavigateUrl = pathToCheck
Else
'檔案路徑不存在,將hyperlink之sender.NavigateUrl指向自訂的錯誤頁面
sender.NavigateUrl = "../myError.htm"
End If
End Sub
再來和一般的事件處理常式比較(以下簡稱AA)
Protected Sub HyperLink1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles HyperLink1.Load
Dim pathToCheck As String = "../download/" & HyperLink1.Text & ".zip"
If (System.IO.File.Exists(Server.MapPath(pathToCheck))) Then
HyperLink1.NavigateUrl = pathToCheck
Else
HyperLink1.NavigateUrl = "../myError.htm"
End If
End Sub
用一般的事件處理常式,控制項越多程式碼會越龐大,在你仿照第1個控制項,做copy/paste動作撰寫其他控制項事件處理常式後,還要一個一個去改控制項的ID(注意粉紅色)!
所以事件處理常式的共用是非常重要的,除了精簡code還能避免手動更改控制項ID或其他變數時有漏改的情況產生,而且漏改通常不會無法編譯,可是每當在執行各事件處理常式時,漏改的part就是無法如願以償去執行正確的動作,此時code已經深如大海很難維護!
現在回頭看,我們已經有單一方法H來處理問題,但是H要怎麼知道是哪個控制項可引發事件?這時仔細觀察AA之所以能觸發HyperLink1的Load事件是因為有「Handles HyperLink1.Load」,所以只要在H後面加上要觸發的控制項事件即可,完整H如下
Protected Sub HyperLinks_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles HyperLink1.Load, HyperLink2.Load, HyperLink3.Load _ , HyperLink4.Load, HyperLink5.Load, HyperLink6.Load, HyperLink7.Load, HyperLink8.Load, HyperLink9.Load, HyperLink10.Load
Dim pathToCheck As String = "../download/" & sender.Text & ".zip"
If (System.IO.File.Exists(Server.MapPath(pathToCheck))) Then
sender.NavigateUrl = pathToCheck
Else
sender.NavigateUrl = "../myError.htm"
End If
End Sub
【注意】
1.參考網址http://msdn.microsoft.com/zh-tw/library/4ac48519.aspx
2.不想keyin也可用VSTS設計頁面(下圖),在每個控制項事件中指定「共用事件處理常式」,H就會自動為您加上要觸發的事件(黃色)。
判斷檔案是否存在
我的解決方式是直接更改IIS中的「自訂錯誤頁面」。但後來PM要求不要所有的HTTP 404都導向同一個頁面,只好放棄前面偷懶的方法,乖乖去判斷載點是否存在!
Sub getFile()
Dim pathToCheck As String = "../download/ABC.zip"
If (System.IO.File.Exists(Server.MapPath(pathToCheck))) Then
'檔案存在,這邊可以讓使用者下載
Else
'檔案不存在,跳出說明頁面或提示訊息
End If
End sub
【注意】
1.本例之pathToCheck使用指定的路徑,亦可以用動態的!
2.若pathToCheck像本例一樣是使用相對路徑,記得在判斷檔案存在與否時使用Server.MapPath函示
3.參考網址http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.fileupload.saveas(VS.80).aspx
演唱會嘉賓
現在看youtube每看一次感動一次,覺得自己真是笨蛋=..=
希望27那場來的都是我認識的歌手XXD
again
改支小程式很簡單沒錯,花不到幾分鐘時間,問題是資料有問題怎麼可以叫RD偷改程式去掩飾資料的錯漏咧!!!?本末倒置嘛
唉..什麼時候才可以組成有系統、正統開發流程的開發團隊,重點是還要有決策權!
不然你幾萬筆資料隨便爛個幾筆,我都改到死嘛(@__@)
Bad Request(解決request中文傳值亂碼)
可以使用的函數有Server.UrlDecode和Server.UrlEncode
如果是在前端(javascript)就要進行編碼工作,則是透過escape()以及unescape(),不過它們已經算是舊版的函示,建議還是使用decodeURIComponent()與encodeURIComponent()。
PS:piggy在開發時使用escape()在IE6、IE7都是沒問題的!
2009香港行-行前準備3
★機場快線
提供旅客機場/市區之往返,可依需求選擇票種,這次是6天5夜所以選擇「來回票」,車票可以到香港MTR官網訂購,或是透過y拍之類的購物網站取得。
注意事項:
(a)如果有購買機場快線、著名景點觀光套票的需要,可以和港簽一起搞定,因為購買多項產品可以在y拍取得更優惠的價格。
(b)機場快線的下車點其實不是很方便,大家要善用酒店的接駁車,或是免費的機場快線接駁車,而且班次非常多,只要在車收班前都可輕易搭到。
★八達通
悠遊HK絕對少不了的必備品,功能類似我國悠遊卡,但功能更強大,連機場快線的扣款也可以靠他,即使要去馬場小賭一下,都可以拿八達通付入場費喔ㄎ
注意事項:
(a)離開香港前記得拿去退款喔,不過要扣手續費就是勒
★2009香港行前準備系列
1. 行前準備1
2. 行前準備2
3. 行前準備4
★2009香港行
1. Day1
2. Day2
3. Day3
4. Day4
5. Day5
REST API Admin
相信有玩ArcGIS的都知道「ArcGIS Services Directory」可用來瀏覽目前已啟動之服務,及該服務相關資訊、支援之檔案格式等,但是piggy常遇到不論用ArcCatalog或ArcGIS Server Manager重新啟動/關閉某服務(以下簡稱S),S仍然不存在/存在於起使頁面的怪情況(因為cache還在),這時候就要靠「REST API Admin」出馬了!以下簡單把步驟一一切圖下來給大家參考。
1.在瀏覽器上輸入網址,導向RST API Admin頁面
http://架設服務的伺服器IP/ArcGIS/rest/admin/
2.輸入帳號與密碼
登入方式與ArcGIS Server Manager一樣,帳號一定要給機器電腦名稱\帳號(例如pc-21\admin),成功登入之畫面如下圖
3.承上圖,API提供—Clear Cache Options、Services Directory Options兩種設定工具,請按下Clear Cache Options進入手動清除服務Cache的頁面
4.按下頁面左上方的「Clear Cache Now」即刻清除cache,若出現「Cache Cleared.」的字樣表示您已經成功清除S的cache。
5.接著我們再回去檢查「ArcGIS Services Directory」,本來怎麼找都找不到的S已經順利出現在Directory的列表中!
2009香港行-行前準備2
機票原則上可透過旅行社或直接向航空公司購買,這次使用背包客棧的"便宜機票查詢系統",雖然查出一堆結果卻一點也不便宜XXD即使搭配信用卡且在2:00pm後登機,單程不包機場稅也要約4100大洋/人,而且後來經由網友指點發現「開票」、「定位」是兩碼子事,降越來越覺得定機票是一件棘手的事情@@
最後和同行友人討論,決定把事情簡單化,直接向航空公司購票!
皇天不負苦心人!後來在長榮找到搭配MASTER CARD的168優惠專案,台北-香港往返只要7712/人,重點是7712包含機場稅那些哩哩摳摳的稅金,往返班次完全不限制,想玩夠本的人就可以早去晚回!
第1次線上購買機票,使用經驗還蠻不錯的,迅速買票後可以馬上選位、選餐,不到一個小時就搞定(因為在半小時後如果尚未付款,系統會踢你出去:p),只要小心別錯手選錯航班~◎_◎~,因為退費非常耗時間、金錢,可能尚未出國就已經玩興大失。
購買機票要注意的二三事:
1.稅金通常是另外計算
2.機票可能受匯率影響
3.優惠票通常不易更改航班
4.單程航班多以電子機票方式登機,記得攜帶電子機票
5.要注意優惠票的限制,ex:信用卡持卡本人必須為機票使用者其中一人
6.若以信用卡購票,務必攜帶該信用卡以完成登機前的確認
7.機票分年票、月票balabala很多種,請依需求購買,免得成了冤大頭
8.貨比三家不吃虧!既然要自助就要認真比價,不然像piggy之前找到的都約略落在13000-11000(單人往返含稅)
另外另外,買完機票的好處是可搭配該航空公司與酒店合作的方案,還有購買機票前最好先加入該航空公司之會員,可以累積里程!
★2009香港行前準備系列
1. 行前準備1
2. 行前準備3
3. 行前準備4
★2009香港行
1. Day1
2. Day2
3. Day3
4. Day4
5. Day5
2009香港行-行前準備1
出國旅遊除了攜帶快樂心情、夠用的摳摳,一定要做好行前規劃,除非對當地熟到不行,只是單純去度假閒晃那真的就是衝上飛機就可以勒。這次因為打算看完演唱會後順便感受一下當地跨年氣氛,而且同行友人對於香港已經印象模糊勒,所以本來要採free style亂晃一通的想法就作罷勒,還是來好好規劃行程,反正日後應該都是自助旅行,總不能每次都耍懶去現成的:p(朋友規劃好的),或許慢慢規劃出心得以後常常自己一人跑國外去逍遙也說不定cc。
目前暫訂4天3夜港澳遊,會去香港當然是鄭四萬要開演唱會>////<,這次加入澳門則是考慮到4天都待在香港可能會有點膩,反正現在持有中華民國護照的台灣民眾即可免簽證進入澳門,最多停留30天,所以現在要搞定的就是護照和香港簽證的部分。
護照:就是看有沒有過期,沒什麼要特別說的XD
港簽有以下幾種,不過最新的簽證形式還是以香港入境事務處 的網站為準
(a)電子簽證(HK稱網上快證):有效期限2個月,可出入香港2次,費用為港幣50元,只能請特許 航空公司及旅行社代辦,但是各代辦機構會收取不等的手續費,費用從300到上千元都有=..=
(b)單次簽:有效期限3個月,憑證最長可逗留90天
(c)多次簽:有效期限分1年、3年兩種,憑證入境每次可逗留30天
辦理電子簽證要注意2件事:
1.委託代辦後通常領到的是電子簽證的單據,真正的簽證需到香港國際機場的專櫃領取(不過有些代辦機構會先幫你把電子簽證送到台灣)
2.護照的有限期限至少要6個月以上
這次是單純旅遊,近期內鄭四萬也不會再開演唱會,今年的香港行我會採用電子簽證的方式,也不用像上次那樣辦台胞證,硬是跑去作廣九鐵路晃到大陸去XD
★2009香港行前準備系列
1. 行前準備2
2. 行前準備3
3. 行前準備4
★2009香港行
1. Day1
2. Day2
3. Day3
4. Day4
5. Day5
MS Chart
1.IsEndLabelVisible
作單一年度的月份人口報表(X軸為月份、Y軸為人口數)時,月份照理說是1-12月,但是Chart每次都會自動+1,直接將X軸延伸至13月=..=
後來試勒二種方法
(a)指定X軸的資料型態為月份:造成X軸會顯示詳細"西元年月",無法只顯示"月份"
(b)指定X軸最大值等於12:會造成12月份的直條圖被切一半
最後找到Chart→ChartAreas→AxisX→LabelStyle裡面的「IsEndLabelVisible」屬性才解決這個問題,將此屬性設為False即可讓Chart認為的最後一個標籤(13月)不被顯示,這樣12月的資料就不會被切到,可以完整顯示!
感謝強者
以後我也要像強者一樣,除了功力深厚還要多幫助其他有需要的同事~不過前提是自己也要加把勁,努力朝強者之路邁進,不然也沒什麼可以鼎力相助的ˇˍˇ≡
anyway,要再次感謝今日鼎力相助的仁兄,希望不要害你被老婆念太晚回家@"@
RD的辛酸
主管:我非常同意業主的說法,架構搞成這樣太沒sense,連我都看不下去勒
PM:可是照著合約走啊!
主管:我才不管你什麼合約,這麼離譜的東西你敢交給人家
PM & RD:....
.......接下來的冗長會議,PM已經失去立場說話只能點頭稱是....當然也就沒人管RD...最後結果就是RD改到死
小妹覺得業主也不是都無理取鬧,意見當然是源自於需求,但是我真的很想請問PM,怎麼沒有和業主建立良好的溝通??如果只是照著合約依PM個人意思解讀,再對RD下達指令,那你當PM跟我當PM有差嗎????!!PM都不PM了嘛
說RD是Redo & Delay真是一點也不為過 <‵▽′>
父子視窗傳值
(假設父視窗叫做parent.aspx,用來放置小月曆的子視窗叫做child.aspx)
1.方法一
開啟方式:window.open
傳值方式:opener
開啟方式ex:window.open('child.aspx','月曆選取器','width=300,height=300')
傳值方式ex:opener.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
2.方法二
開啟方式:window.showModalDialog
傳值方式:window.dialogArguments.form1.SelectDay.value = day;
開啟方式ex:window.showModalDialog('child.aspx',window,'dialogWidth:300;dialogHeight:300;')
傳值方式ex:window.dialogArguments.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
[心得]
★上述2種方法都可,要注意的是方法二要能讓父子視窗互動的話,一定要在showModalDialog的第2個參數填上window。
★之所以後來採用方法二,是為了讓視窗永遠focus在child.aspx並顯示為最上層,這樣使用者在開啟child.aspx視窗後,就不會有忘記視窗已開啟而誤以為網頁無法傳值的問題!
使用民國年的小月曆
http://epaper.blueshop.com.tw/board/show.asp?subcde=BRD200410280805412Y2&fumcde=FUM20041006161839LRJ&rplcnt=13
http://blog.miniasp.com/post/2007/12/04/I-Found-two-very-useful-Calendar-for-Taiwan.aspx
http://74.125.153.132/search?q=cache:W_fdFPRc6_cJ:www.dotblogs.com.tw/chhuang/archive/2008/03/18/1861.aspx+calendar+%E6%B0%91%E5%9C%8B+AJAX&cd=3&hl=zh-TW&ct=clnk&gl=tw
http://msdn.microsoft.com/zh-tw/library/cc464124(VS.71).aspx
我是使用Calendar並搭配DropdownList讓控制項更靈活,考量到重複使用其實是應該要作成「自訂控制項」。
以上是一點心得,如果有需要的話我再把程式碼放上來。
處理樣板欄位中的空值
一般來說,我們並不會滿足於使用基本的GridView,而是透過樣版的設計客製化符合業主的表格,但是樣板並不具備NullDisplayText屬性讓我們直接操控,這時候需要寫一點小程式來處理,說明如下。
假設樣板中有一Textbox1,其Text屬性是binding「金額」這個欄位 Eval("金額")<%# Eval("金額") %>,如果我們希望金額是零元的時候顯示「目前無存貨」的字樣,有金額時則改以錢字符號加上金額來顯示(例如$100),可以透過以下函示完成
Public Function GetReportsTo(reportsTo As Object) As String
If reportsTo Is DBNull.Value Then
Return "目前無存貨"
Else
Return "$" & CStr(reportsTo)
End If
End Function
最後把Textbox1之Text屬性之binding改為GetReportsTo(Eval("金額"))即可!
【附上參考來源】
使用資料來源控制項處理 Null 資料庫值
http://msdn.microsoft.com/zh-tw/library/ms366709%28VS.80%29.aspx
tr標籤的可見性
今天在寫一支javascript,希望滑鼠移動到image時可以改變顏色,當滑鼠再進一步click則開啟某個tr,因為這次想要全都使用javascript去控制,而不是透過後台的方式,所以作了一些嘗試,以下是一點心得。
-----------------------------上面是廢話-----------------------------
1.tr的設定
<tr id="tr1" style="VISIBILITY: hidden">
略
<tr/>
2.控制可見性
< a="#" onmousedown="document.getElementById('tr1').removeAttribute('style'); document.getElementById('tr1').style.visibility='visible';" <a/>
簡單來說,本範例是用onmousedown事件觸發,首先清空tr1的style設定接著再給予新的設定值即可,如果style的設定有很多的話,可以考慮獨立一個專門設置style的function給onmousedown叫用。
PS:piggy本來是用onmousedown="document.getElementById('tr1').visible='True';",可是都不work後來才改用設定style的方式,提供給跟我遇到一樣問題的人參考。
關於GridView的CommandName
不過有時候因為種種原因需要以程式binding動態的dataSet,就要自己處理GridView各類behavior,相關處理方式請參考http://www.dotblogs.com.tw/topcat/archive/2009/02/23/7266.aspx
------今天要分享一點關於「GridView的RowCommand事件」的心得------
GridView可能包含多個自行設計的Colume,每個Colume各有各的CommandName...並且分別執行不同的事情,透過取得e.CommandName就可以在事件中撰寫他們要執行的程式碼,如下面的範例
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Select Case e.CommandName
Case "Hello"
'當CommandName=Hello時處理本段程式
'(略..)
Case "ByeBye"
'當CommandName=ByeBye時處理本段程式
'(略..)
Case Else
Exit Sub
End Select
End Sub
上面的"Hello"和"ByeBye"都是正確的,但是如果用"Delete"就會出現如下圖的錯誤,piggy還想說都已經自訂程序勒,怎麼錯誤訊息還要我去處理RowDeleteing,如果大家以後遇到情況可能要檢查一下CommandName的命名,而不是傻傻的跑去撰寫RowDeleteing事件!!
〔心得〕CommandName命名絕對不可和GridView事件之名稱相同!
在網頁中加入Silverlight控制項
在進行Silverlight專案測試,習慣上都是對布置好的場景按滑鼠右鍵以「在瀏覽器中檢視」或是透過Silverlight的測試頁來觀看結果,一直沒有把Silverlight的角色搞清楚,因此對於Silverlight的使用場合一直沒有feel,今天仔細拜讀章立民老師所出的「Silverlight2.0 精華技術手冊」第3章才開竅(暈...不知道之前在笨什麼),以下是範例Demo。
4.接著設定此控制項的Source屬性,將它指向某一個你已經設計好的xaml檔案
前述步驟引用的xaml為他人資料,就不放上最後Demo畫面!
只要每個步驟都有作到,一定可以成功在您設計的網頁上看到豐富的Silverlight控制項!
如何安裝Silverlight 2.0
安裝的時候忘記抓畫面勒,只好用最後的完成頁面給大家參考(上圖)。安裝過程都很簡單,只要看一下這個工具提供的訊息並且按Next就可以了!
2.安裝VS2008 SP1
SP1有exe執行檔和iso檔兩種可供選擇,網路不穩定的朋友可以考慮下載iso,因為piggy在第一次安裝執行檔的時候不幸在1個多小後才失敗=..=
3.安裝 Silverlight Tools for Visual Studio 2008 SP1
4.安裝Blend 2試用版以及Blend 2 SP1 繁體中文
5.安裝Silverlight Toolkits
裡面有很多Samples,並且包含原始碼~對學習很有幫助,建議安裝!
6.安裝Deep Zoom Composer
目前只release英文版,繁體中文可能還要在等等
Silverlight 2.0
剛剛查勒一下資料好像1.0真的陽春很多,就直接2.0下手吧,希望可以做出很酷的網站!
說不定之後可以開始寫自己的「技術文件」,為學習留點心得^^