.NET XML 序列化進階:自訂屬性與元素對應
基本序列化 XmlSerializer 預設將公用屬性/欄位序列化為 XML 元素。範例: public class Person { public s
WinForms 自繪容器控制項 JcsItemList:類 ListBox 進階實作
專案簡介 JcsItemList 是一個完全自繪的 WinForms 使用者控制項,功能類似 ListBox 但支援自訂標題、項目繪製、鍵盤/滑鼠滾輪操作、雙擊
ASP.NET 依 IP 取得網易天氣預報:從 JS 逆向到伺服端回呼實作
專案緣起 需在自有網站顯示訪客當地天氣,參考網易首頁做法:以 IP 判斷地區碼,再載入對應天氣頁。經分析發現流程為: 訪問 https://news.16
GridView 自訂分頁列:打造專屬分頁工具列
需求背景 內建 GridView.PagerSettings 雖方便,但樣式與功能難以滿足複雜需求 (如顯示「第 N 頁 / 共 M 頁、共 K 筆」、首頁/尾
防止自訂控制項屬性被設計器序列化至 InitializeComponent
問題情境 開發繼承自 ComboBox 的自訂控制項 CommunicationTypeComboBox,建構子預設加入「串口」、「TCP」兩個項目。但在設計器
ASP.NET DataGrid 匯出 Excel 並自訂欄位格式
需求背景 利用 DataGrid.RenderControl 將伺服器端控制項輸出為 HTML 表格,再透過 HTTP Header 強制瀏覽器另存為 .xls
ASP.NET 使用 StreamWriter 建立文字檔案完整範例
前言 在 ASP.NET 中建立伺服器端文字檔案,需使用 System.IO 命名空間下的 StreamWriter 或 File.CreateText。本文提
C# 進階開發:System.Reflection.Emit 動態組件與類型解析
簡介 本文節選自 Microsoft .NET Framework SDK 範例程式碼 TypeResolve.cs,示範如何利用 AppDomain.Type
自訂 Web 控制項 AutoLabel:長文字自動省略並顯示提示
需求背景 在寬度不固定的網頁版面中,單行文字常因容器過窄而換行或撐破排版。利用 CSS text-overflow: ellipsis 可實現單行截斷並顯示「.
IBatisNet 實作呼叫預存程序完整範例
簡介 IBatisNet (現稱 MyBatis.NET) 是輕量級的 ORM 框架,透過 XML 映射檔將 SQL 與程式碼分離。本文示範如何定義 <p
ASP.NET (VB.NET) 將圖片儲存至 SQL Server 資料庫完整教學
前言 在許多企業級應用中,為了安全性或管理便利性,我們常需要將圖片直接儲存於資料庫而非檔案系統。本文將詳細示範如何在 ASP.NET Web Forms 環境下
C# 實作外掛架構:利用反射與介面打造可擴充應用程式完整教學
為什麼需要外掛架構? 傳統單體應用常面臨:功能模組耦合度高、新增功能需重新編譯部署、程式碼重複複製貼上。外掛架構將核心主程式與功能模組分離,主程式只負責發現、載
ASP.NET 頁面架構下的控件通信全攻略:母版頁、User Control 跨層級傳值與解耦
前言 ASP.NET Web Forms 頁面由母版頁、內容頁、使用者控件組合而成,看似整體,實則各自獨立。如何在這些層級間安全、鬆耦合地傳遞資料與觸發行為,是
ASP.NET AJAX RC1 與 URL 重寫、瀏覽器快取衝突的深度排查與解決方案
問題現場 專案引入 ASP.NET AJAX RC1 後,原本自行開發的 URL 重寫模組運作正常,但 第二次非同步回發(Async Postback)即拋出
自訂檔案上傳控件:多檔上傳、刪除預覽與副檔名限制完整實作
需求背景 專案中表單頻繁出現檔案上傳需求,且編輯模式常需重新上傳或移除既有檔案。為避免重複造輪子,封裝一個可重複使用的 Web User Control,支援以
ASP.NET 精確測量頁面執行時間:Global.asax 攔截器實作
原理 利用 `HttpApplication` 管線事件: Application_BeginRequest:請求進入管線最早期,記錄開始時間。 Applic
.NET UrlRewriter 使用經驗總結與實作指南
前言 在 ASP.NET 開發中,URL 重寫是實現靜態化、SEO 優化與友善網址的關鍵技術。微軟提供的 UrlRewriter 組件封裝完善,能大幅減少自行開
JavaScript 取得網頁選取文字與所在句子完整技巧
核心 API:Selection 與 Range 現代瀏覽器 (IE9+、Edge、Chrome、Firefox、Safari) 統一支援 window.get