Browse by Tags

【答客問】耗時Stored Procedure的ASP.NET Postback進度回報寫法
【問題】 在 耗時ASP.NET Postback的傻瓜進度回報 一文,雖然示範了跑迴圈定期呼叫ReportProgress委派傳回進度的貼心做法,實務上卻難以實現,例如: 某個Stored Procedure要跑一分鐘,在IDbCommand.ExecuteNonQuery()執行結束前,根本什麼都不能做,又如何能定期丟進度給前端? les.Execute( sender as Button, (rp) => { //模擬執行很耗時的作業 for ( int i = 0; i < 5;...
Posted 15 April 2013 11:30 PMJeffrey | with no comments 7,348
Filed under: ,
Telerik RadGrid AJAX更新範例
RadControls for ASP.NET AJAX 是一套挺優秀的ASP.NET元件庫,包辦了開發ASP.NET專案時需要用到的大小控制項(如: Grid、日期選擇器、數字輸入欄位、頁籤... 等等),手上有幾個專案裡就是利用RadGrid的 Client-Side Data-Binding 實現AJAX式的換頁及重排效果,但中年人記憶消失之快已到了令人心驚的地步,每次要寫類似應用都要花上大半天回頭從舊程式找範例(要命的是連在哪個專案寫過都要想半天),於是催生了這篇" 銀杏文 "...
Posted 01 December 2011 06:07 AMJeffrey | 8 comment(s) 22,349
Filed under: , ,
CODE-剔除特定QueryString參數
需要將URL中的某個QueryString參數移除的函數,例如: 原本是httq://www.com/a.aspx?a=1&b=2&c=3,將b移除後要變成httq://www.com/a.aspx?a=1&c=3,分別用Regex及 ParseQueryString 試寫,因為要考慮b是第一個、最後一個及唯一參數情境下對?及&符號的需求不同,增加了程式的複雜度。 經簡單測試,二者效果相同。不過若考量Regex在遇到比對文字(即參數名稱)中出現Regular Expression特殊符號時會失效...
Posted 13 July 2011 06:23 AMJeffrey | 2 comment(s) 11,517
Filed under: ,
耗時ASP.NET Postback的傻瓜進度回報
手邊的ASP.NET WebForm專案,有幾個耗時頗久的資料庫作業被寫在Button伺服器端Click事件裡。下場是當使用者按下按鈕,只見瀏覽器一直顯示執行中,等到天荒地老卻無法得知程式是已經當掉還是沒跑完,嚴格來說,這是蠻糟的介面設計。理想的做法,至少要讓使用者在漫長的等待過程持續獲得處理進度資訊,看著處理百分比不斷增加或是待處理件數逐漸減少,肯定能有效降低等待的焦慮感,明顯改善操作體驗。 要實現進度回報,改用AJAX呼叫是不錯的解法,但依過去的經驗,要在數分鐘的執行過程中持續傳回目前進度,機制還蠻複雜的...
Posted 09 July 2011 09:37 AMJeffrey | 15 comment(s) 21,319
Filed under: ,
CODE-Javascript Hashtable轉Dictionary
這是寫給同事參考的範例: 如何在ASP.NET伺服器端承接Javascript以{“p1”:”v1”, "-123":"v2”}方式傳入的Hashtable? 由於鍵值可能出現負號等.NET不允許的屬性名稱字元,加上有哪些鍵值是動態決定,無法事先掌握,故不適合將其轉型成.NET中的類別,轉成Dictionary<string, string>應是較好的解決方法。 引用JSON.NET(PS: JSON.NET現在也可以 使用NuGet安裝 囉! 按個【讚...
Posted 16 June 2011 04:37 AMJeffrey | with no comments 8,406
Filed under: , ,
CODE-連上特定網頁時,強迫IE重新登入網站
今天收到的隨堂測驗考題: 在使用IE以Windows驗證登入IIS的企業環境中,系統透過通知信件傳送某網頁的連結,而客戶希望使用IE開啟該連結時,無論當時是否已登入過該網站,也不管IE已記憶密碼或設定可用網域帳號自動登入,都需再次彈出登入對話框,要求使用者重新輸入帳號密碼後才可使用。 原本以為用Request.StatusCode = 401;的招術就可輕鬆解決,但後來發現沒這麼簡單: 若已用IE登入過該網站,即便透過ASP.NET傳回Status 401,IE私底下會先用剛才的帳號密碼嘗試登入...
Posted 14 June 2011 01:35 AMJeffrey | 17 comment(s) 17,901
Filed under: ,
CODE-Convert Enum+DescriptionAttribute to ListItems
[Abstract] Here is a sample to store text descriptions of enum fields to DescriptionAttribute, and convert them to a enum field name to description dictionary. So we can use it as the data source of dropdownlist or listbox easily. 開發系統時,常會用到下拉選單選項文字與值不同的設計...
Posted 15 April 2011 07:20 AMJeffrey | 3 comment(s) 6,606
Filed under: ,
MicroHttpServer - 用100行C#寫一個HTTP Server
有個點子,想在WinForm上跑程式模擬出Web Server功能,讓Browser或程式可以透過HTTP協定與其溝通。既然想到,就動手做看看囉! HTTP Server絕大部分的核心功能,其實都可用.NET搞定: 用 TcpListener 接受特定Port連入的TCP連線,取得 NetworkStream ,以StreamReader、StreamWriter讀取及寫入資料... .NET BCL 真是應有盡有!相較之下,以前那種基礎元件跟函式庫都得自己張羅的時代,只能用茹毛飲血來形容。 有了BCL的加持...
Posted 14 August 2010 09:23 AMJeffrey | 14 comment(s) 33,593
Filed under: , ,
筆記-讓ASP.NET TreeView可以透過Javascript新增節點
同事在網頁上用了 ASP.NET TreeView控件 ,但專案規格中需要由Javascript端完成新增節點的動作,很不幸地,這不是ASP.NET TreeView內建支援的功能。 如果時間充裕的話,我會建議改用jQuery TreeView Plugin,較符合大量Client端客製的需求,但因時程迫在眉睫,且只差這個小功能,所以大家不要考究"破解"ASP.NET TreeView前端設計的意義,把它想像成打破水缸救人就好。 寫完這段程式,等同於小小地破解ASP.NET TreeView前端HTML與Script設計...
CODE-自動產生對應Javascript物件的.NET類別
Abstract : This is a code generator to declare reflected .NET class of Javascript object using JSON.NET JObject features. 這是跟同事在討論系統架構時冒出的議題... 網頁前端將使用者輸入結果組裝成結構單純的Javascript物件,一個欄位對應一個屬性,但有些欄位如電話、地址等可能有多筆,故屬性型別除了字串、數字外,也有會有電話號碼物件陣列,電話號碼物件則包含國碼、區碼、號碼三個屬性...
Posted 06 June 2010 11:01 AMJeffrey | with no comments 9,018
Filed under: , ,
CODE-使用JSON.NET處理動態物件屬性
之前在文章裡 提過 .NET內建兩種JSON轉換工具: JavaScriptSerializer及DataContractJsonSerializer。不過,它們都基於一個假設--"JSON轉換對象是事先已知的Class"! 在某些狀況下,前端所傳回的JSON字串是開發階段無法完全掌握的。 舉個極端的例子。在Javascript裡可用以下寫法搞出一個你做夢都想不到的物件,轉成JSON傳到後端: var o = {}; for (var i = 0; i < 10; i+...
Posted 05 June 2010 09:48 AMJeffrey | 1 comment(s) 57,290
Filed under: ,
CODE-ASPX接收jQuery.ajax傳送XML文件範例
今天應用到以jQuery.ajax送出XML文件,以ASPX接收處理的寫法。在倉庫挖了好久,才找出不久前剛寫過的程式碼參考。為了避免中年記憶衰退成為我活到老,Coding到老路上的絆腳石,整理一下程式貼成KB,也順便與有此需求的鄉親們分享。 HttpRequest要傳遞整份XML文件時,並不是將XML字串放在參數中,而是把整個XML內容當成POST Request的主體,因此在jQuery端與ASPX端跟一般呼叫寫法有些不同。 傳送時,必須直接使用jQuery.ajax()以精確調控參數,沒法用...
Posted 02 October 2009 04:12 PMJeffrey | 5 comment(s) 19,268
Filed under: , ,
輕量級的js檔打包解決方案
最近在嘗試將一個功能強大的jQuery Plugin【 jqGrid 】整到專案裡,它的功能與彈性讓人印象深刻(不過要上手得花點時間摸索),大家可以直接看 線上展示 ,應該就能感受其威力。 jqGrid有個貼心的設計--將功能模組化。各模組的程式分散在多個js檔,有用到才需要載入,避免Client端載入肥大js只使用其中一丁點功能,白白浪費載入時間及頻寬。(剛好前些時候James Padolsey也提到 這點 ,甚至覺得殺雞不必用牛刀,小功能或許自己寫會更有效率兼便練功) jqGrid提供了兩種做法...
【雛型】Docx套版列印功能試作
在我的程式開發生涯中,套版輸出指定格式的報表/表單一直是揮之不去的煩人差事,沒什麼營養,偏偏在每個案子裡幾乎都像小強一樣冒出來。 面對這類需求,轉成網頁是下策,因為列印時排版格式常會亂到一塌糊塗,鮮少讓人滿意。在經驗裡,Reporting Service是不錯的選擇(而且免費)。 但有些報表如確認書、通知書,在格式上並非Gird格式,跟Reporting Service最擅長的表格呈現有點差距,數量一多,要將User提供的Word檔一一轉成Reporting Service報表便成了苦差事,尤其某些文件被要求必須模仿到跟原始樣版分毫不差...
Posted 30 July 2009 12:58 AMJeffrey | 60 comment(s) 56,941
Filed under: ,
GridView的標題欄、列凍結效果(跨瀏覽器版)
稍早發表了 GridView的標題列凍結效果 ,足以滿足工作上的需求,不過存在兩個缺點: 只支援FF及IE6/7、只能凍結列不能凍結欄(行)... 不甘心事情只做一半,又挖了一下,驚喜地發現另一個版本: Super Tables ,可以支援Firefox 2+, Internet Explorer 5.5+, Safari 3+, Opera 9+ 以及Chrome,而且也支援直欄的凍結效果,在功能上大勝ScrollableTable,二話不說,通通包起來。 SuperTable的原理與ScrollableTable不同...
Posted 18 February 2009 12:10 AMJeffrey | 70 comment(s) 107,185
Filed under: , ,
更多文章 下一頁 »

搜尋

Go

<March 2017>
SunMonTueWedThuFriSat
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication