一般要取得 GridView 中的欄位值,都是要指定該欄位值所在的儲存格索引,還要判斷資料列在瀏覽或編輯模式,使用不同的方式在擷取。例如有一個 ProductName 的 BoundField,它在 GridView 中的欄位索引為 3,則在瀏覽模式要使用下列方式來取得瀏覽時 ProductName 欄位值。GridViewRow.Cells(3).Text 若是在編輯模式時,因為欄位值是在 Cell 中的 TextBox,所以要使用下列方式來取得編輯時 ProductName
使用 ASP.NET AJAX 開發人員,一定不會錯過 UpdatePanel 這個超級控制項,它可以讓輕易的讓原有設計的頁面很輕易的具有 AJAX 的效果。可是在設計階段使用 UpdatePanel 去排版常造成我們的困擾,放置在 UpdatePanel 中的控制項無法正確呈現實際的排版狀況。例如我們在 UpdatePanel 中只簡單放置 TextBox 及 Button 二個控制項Code highlighting produced by Actipro CodeHighlighter (
TBDateEdit 日期控制項 - 1.0.0.0 版 發佈日期:2007/12/02程式下載:TBDateEdit_1.0.0.0.zip介紹TBDateEdit 日期控制項是純用戶端的日期選單,整合 The Coolest DHTML Calendar (註1) 強大的 JavaScript 日期選擇器。透過控制項屬性的設定來簡化撰寫 JavaScript 程式初始化 The Coolest DHTML Calendar
GridView 若需要有捲軸,通常會將 GridView 置於 Panel 中,並設定 Panel 的 ScrollBars 屬性為 "Auto" 時,這樣 Panel 就會自動判斷是否需要出現水平或垂直捲軸。 Code highlighting produced by Actipro CodeHighlighter
結構型模式考慮的是類及對象如何組合成更大的結構。結構模式的分類:1.類的結構模式:使用繼承機制來組合介面或實現。2.對象的結構模式:描述如何通過組合對象產生新功能的方法,是動態,因為他可以在運行期隨時改變對象的組合能力,這是類結構無法達到的。 儘管各個模式的目的截然不同,但卻具有互補性。如果能結合使用則能獲得意想不到的效果。
行為模式是對在不同對象之間劃分演算法和職責的抽象化。 行為模式分類:1.類的行為模式:使用繼承機制在類間分配行為。2.對象的行為模式:使用對象合成而不是來分配行為。 理解關鍵點:1.行為模式不僅描述對象或類本身,還描述他們之間的互動。2.這些模式涉及到在運行期不易掌握的複雜的控制流程,從流程式控制制到對象互動是此類模式的特點。3.封裝變化是很多行為模式的主題。當一個程式的某個方面的特性經常發生改變時,就可能將這些變化的行為特徵風裝成一個對象,並通過某些行為模式規範用戶端所依賴的這些對象間的協作。
一般 FindControl 方法,大都是以 ID 尋找控制項的第一階的子控制項(若控制項有多載 FindControl 方法則例外)。之前有發表過一篇「遞迴方式的 FindControl」的文章,它是以遞迴方式逐層往下去執行 FindControl,找到指定 ID 的控制項。此篇文章是提供進階版的 FindControl,此方法一樣是以遞迴方式逐層往下去執行 FindControl,不過它不限只能以 ID 去尋找控制項,而是指定「型別、屬性名稱、屬性值」去尋找符合的控制項。 1 /**/
Calendar 控制項可以透過 SelectedDate 屬性來取目前選取的日期,不過它沒有提供日期複選的功能。為達到日期複選的功能,我們在 DayRender 事件中,為每一個日期儲存格加入一個 HtmlInputCheckBox 控制項做日期選取,當 PostBack 時再透過 Request.Form
Factory Method (Factory 方法模式、虛構造子模式、多態原廠模式): 定義建立對象的介面,並由衍生類別決定那一個類來建立執行個體。即Factory 方法將建立對象的責任委託(延遲)到了衍生類別建立。 適用情況:1.當一個類無法事Crowdsourced Security Testing道她所必須建立的對象的類的時候。2.當一個類要讓其衍生類別決定構建對象時。3.當類將建立對象的職責委託給多個協助他的衍生類別之一,同時你希望通過所委託的衍生類別來集中管理對象建立邏輯時。
Abstract Factory(抽象原廠模式、工具箱kit) 是所有形態的原廠模式中最為抽象和最具一般性的一種形態,通過抽象工廠提供的介面,用戶端不必指定產品的具體類型就能建立多個產品足(product
DropDownList 在執行 DataBind 動作時,若 Items 集合中不存在繫結的欄位值時會發生 Exception。不過 DropDownList 這種設計方式常會造成困擾,很多時候繫結的欄位值無法預期,而且 DropDownList 控制項在這種狀況釋出的錯誤在頁面程式碼中無法處理。為瞭解決這種情形,比較快的方式就是直接改掉 DropDownList,在控制項中處理這種無法繫結的情形才是最終的解決方案。那我們該從何處下手呢?想想通常 DropDownList
在 Page Init 事件中動態建立的控制項有辨法自行維護狀態,因為這些控制項在 PostBack 後會執行 LoadViewState來還原控制項的狀態。不過我們來看一個案例,首先在頁面上放置一個 Button 做 PostBack 使用,然後在程式碼中 Page Init事件中動態建立一個 Literal 控制項,並在頁面第一次執行時(判斷 Not IsPostBack) 設定 Literal.Text初始值,然後把這個 Literal 控制項加入頁面。Code highlighting
在 ASP.NET 中 Button 是唯一預設會 PostBack 的控制項,若要在按下按鈕時,出現執行的詢問訊息,可以在OnClientClick 屬性加入JavaScript 的 confirm 函式來處理。Button 控制項輸出到前端的 HTML碼時,會依 UseSubmitBehavior 屬性值的 True 或 False 而有不同,而在處理詢問訊息時也會有差異。在頁面上置放一個 Button,UseSubmitBehavior 屬性值預設為 True,將
一般 FindControl 函式只能找到第一層子控制項,像 GridView、FormView之類的複合式控制項,要尋找包含的控制項就非常麻煩,要明確找到父代控制項(容器),才能使用 FindControl去找到子控制項。而且一旦所有往上的父代控制項有任一層變更,就需要再去修改程式碼。為解決上述的問題,可以使用遞迴的方式來進行 FindControl 的動作,來簡化尋找控制項的麻煩。請參閱以下的 FindControlEx 函式。Code highlighting produced by
一般 Calender 都是在 DayRender 事件中依需求加入子控制項,若有個需求要在 Calender 的每日的儲存格中加入一個按鈕,並希望按下這個按鈕能引發該按鈕的 Click 事件,此在事件中撰寫相關程式碼。以上需求最直覺的方式就是新增一個 Button 加入 Cell 中,並使用 AddHandler 來設定 Click 事件的處理函式,程式碼如下。Code highlighting produced by Actipro CodeHighlighter
在 ASP.NET 2.0 預設實現 AJAX 有二種方式,一種是 CallBack 機制,另一種是 ASP.NET AJAX的 UpdatePanel。如果就開發使用的便利性而言,無可爭議的一定是使用 UpdatePanel,因為它可以讓 AJAX實現的不著痕跡;而使用 CallBack 機制必需實作 System.Web.UI.ICallbackEventHandler 介面,並處理CallBack 用戶端與伺服端進行資料交換的所有細節。這代表 CallBack
在 UpdatePanel 中會導致控制項的 Focus 方法失效;若要執行設定 Focus 的動作,就要自行輸出 JavaScript 來達成。假設有一個 TextBox1 控制項要設定 Focus 則需撰寫如下程式碼。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1 Dim sScript As String2 3
假設在 GirdView 欄位的 ItemTemplate 中放置 CheckBox 控制項,然後設定該 CheckBox 的 AutoPostBack 為 True,希望在 CheckBox 的CheckedChanged 事件撰寫相關程式碼。*.aspx 的程式碼如下Code highlighting produced by Actipro CodeHighlighter
在上一篇「GridView 中的子控制項取得所屬的 GridViewRow 及 RowIndex」文章中有提到 TemplateField 中的 ChckBox 產生 PostBack 觸發事件,若我們希望直接使用 CheckBoxField 能不能達到相同 PostBack 的效果呢?以下的範例,就是要以 CheckBoxField 來達到相同效果。假設要執行 PostBack 的 CheckBoxField 置於 GridView 中第二個欄位(欄位索引為1)。Code
ASP.NET 的頁面執行 PostBack 動作時,頁面由伺服端重新傳給用戶端,而頁面的垂直捲軸會跳回最上方,水平捲軸會跳回最左方。為瞭解決此情形,只要將 Page 的MaintainScrollPositionOnPostBack 屬性設為True時,頁面就會自動維護捲軸位置,它是如何?這個動作的呢?當把 Page.MaintainScrollPositionOnPostBack = "True"時,檢視