[SignalR][ASP.NET] 使用 SignalR 來達成電腦網頁與手機網頁即時互動

Standard

之前寫過一篇 [Node.js] 使用 Node.js 來達成電腦網頁與手機網頁即時互動,當時是用 Node.js,最近看到了 .NET 也提供了相似的解決方案 ── SignalR。

官方的介紹是:Async signaling library for .NET to help build real-time, multi-user interactive web applications.
SignalR 一樣可以做即時跟多使用者的互動網路應用程式。
在製作案件時,有時候是無法在客戶的主機上動手腳的,為了不要被技術跟環境侷限,多會一種解決方案也不賴呀。
而且寫的時候覺得 SignalR 寫起來更簡單,很多事都在背後偷偷幫你做完了(.NET 似乎都這樣封裝得好好的,但還是要搞懂其中原理比較好呀)。

廢話不多說,來看一下怎麼實作此次的需求囉。

繼續閱讀…

[JavaScript] ASP.NET 的 ImageButton 搭配 jQuery validate submitHandler 事件 submit 時在 IE 無法引發伺服器端事件的問題與解法

Standard

前陣子案子遇到的問題,是一個簡單的表單需求,使用 ASP.NET 作為伺服器端語言,而前端要使用 jQuery validate 做驗證再送出。
在送出前需要再做一些事件,所以使用 jQuery validate submitHandler 事件處理,最後再以 form.submit(); 送出。

 

code 簡單重現如下:
繼續閱讀…

[Facebook][ASP.NET] 使用 IE 瀏覽 Facebook 頁籤應用程式時遺失 Session 的解法 – 使用 P3P Header

Standard

其實這個問題在用 PHP 撰寫 Facebook 頁籤應用程式時就遇過,最近在用 ASP.NET 時又遇上了。
測試時使用 Internet Explorer 瀏覽,過程中有使用到 Session,但在送出表單後到下一頁面時 Session 卻遺失了。

 

這是因為 IE 的隱私設定預設會阻擋 iframe 跨域網站的 Cookie,而 ASP.NET 的 Session 需使用 Cookie,因此導致 Session 失效。
繼續閱讀…

[ASP.NET] 在文字控制項上使用 HTML5 input type 的方法

Standard

最近的案件在製作手機版網頁時,其中有讓使用者輸入「手機」的欄位,這時想到若能善用 HTML5 文字框中 type 屬性,將之設為 tel,在智慧型手機上就能自動呼叫出電話數字鍵盤,那麼使用者輸入手機時會方便許多。

但由於是用 ASP.NET 3.5 製作,似乎在 4 之前的版本,文字框控制項尚不支援 HTML5 的眾多 type 屬性,若強制更改會造成編譯錯誤。
網上搜尋了一下解法,果真有相關的討論,其實做法就如同在文字框控制項加上 keydown 屬性一樣,在 code behind 那邊加上即可。

以本例來說,就會像這樣:
繼續閱讀…

[Facebook] 取得粉絲專頁資訊與最新一筆主題的方法 (PHP/jQuery/ASP.NET(C#))

Standard

想要取得粉絲專頁(粉絲團頁面)的公開資訊,以及該粉絲團最新一筆主題該怎麼做呢?
這邊分成三種版本來講:PHP、jQuery 與 C#.NET。

※由於粉絲專頁幾乎是公開資訊,從 Graph API 就可取得。因此其實也可以不用做 app,直接就可以透過 Graph API 撈取。這邊只有 PHP 是用老作法。

繼續閱讀…

[ASP.NET][ASP] 傳遞登入狀態

Standard

需求是這樣的,ASP.NET 的網站登入(Session)後,點選其他 ASP 的網站,也要變成登入狀態。

搜尋過有幾種作法:

  1. 透過資料庫,存入 Session_id 供查閱。
  2. 透過 ASP.NET2ASP POST 的方法,但要注意安全性。
  3. 將帳號加密,用 GET 方式附帶在 .asp 網址後方,ASP 端使用該加密字串丟到 ASP.NET 的 Web Service 解密並查詢該帳號是否正確,若正確則傳回 true,ASP 再設定 Session 登入狀態。

繼續閱讀…

[ASP.NET] Flash 圖表解決方案 amchart

Standard

最近有個案子希望用上花俏的圖表效果,最好還會動的。

曾經找過 jQuery 的方案 Horizontal Bar Graph in jQuery,也有動態生長效果,但沒有立體;還有另一套也滿有名的 Open Flash Chart,但在 ASP.NET 中使用的方法不是拖拉元件、指定對應屬性那麼直觀,還沒空仔細研究,就先跳過了。

最後覺得在 ASP.NET 環境下,用 amchart 這套圖表元件相當適合,也滿簡單的。屬性與方法相當多,以下只簡單介紹一下用法。

繼續閱讀…

[ASP.NET] 在文字框中按下 Enter 指定按下某顆送出鈕

Standard

在作專案的時候遇到的問題。當我在某文字框按下 Enter 要做送出時,卻不是送出該文字框對應的送出鈕(文字框控制項有對應的送出鈕的屬性嗎?好像沒看到…)。

網上有些作法是 Code Behind 中將該文字框加上 Enter 的 keycode 偵測,再 return false; ,使送出失效,但不是很好的作法,對使用者不是很友善哩。再找了一下,以下這種方法就能對應想要的送出鈕了。

對了,這種方法也可以通用於加上 UpdatePanel 的頁面,不會只有第一次有效。

txtSearch.Attributes.Add("onkeydown", "if (event.keyCode==13) { document.getElementById('" + btnSearch.ClientID + "').focus();return true; }")

註:txtSearch 是文字框控制項 ID,而 btnSearch 是送出鈕控制項。

出處:http://forums.asp.net/p/1121832/1757434.aspx

[ASP.NET][VB] DataList 水平橫向排列,加上水平分隔線的做法

Standard

需求:

資料一 資料二

我是分隔線我是分隔線我是分隔線

資料三 資料四

我是分隔線我是分隔線我是分隔線

說明:

DataList 做為自動判斷折行排列的資料呈現相當方便,

但詭異之處是設為水平橫向排列後,其分隔 (Separator) 是長在

每筆資料的右方

資料一(SP) 資料二(SP)
資料三(SP) 資料四(SP)

而並非我原先預想的,會長在每個水平分隔上。
看來只能用 Code 自己寫囉,做法如下:

在 DataList 的 ItemDataBound 事件中加入:

[code language=”VB”]
If (e.Item.ItemIndex Mod 2 = 1) Then ‘因為我是 2 個一折行

Dim sp As New Literal
sp.Text = "</td><tr><td colspan=’2’>This is a hr line !!!!!!!!!</td></tr><tr><td colspan=2>"
e.Item.Controls.Add(sp)

End If
[/code]

或許不是很漂亮的解法,總之先做個筆記了。