沒有什麼,開發ASP.NET時隨便寫寫,想到什麼寫什麼

davidtim發表於2021-09-09

沒有什麼,開發ASP.NET時隨便寫寫,想到什麼寫什麼,這次想寫點開發過程中,比如在資料庫,某一張表中有一個欄位,如下:

圖片描述

上面程式碼示例中高亮欄位,資料型別為BIT,它儲存的值將為"True"或"False"。


在前端aspx網頁上,我們用一個形式來呈現友好的控制元件。一般來說,儲存boolean值,一般使用CheckBox控制元件,選中得到為True,反之得到為False,這個是較理想的。但是現這裡是要呈現性別,男或女。那就不能使用CheckBox控制元件了。最接近此要求,也許是RadioButtonList控制元件了。

我們在程式中,設定幾個資料集,作為RadioButtonList 的資料來源:
圖片描述


上面的Key使用int資料型別。
圖片描述

 上面的key使用布林資料型別。
圖片描述

 

上面的key使用string資料型別。其實還可以定義其它,這不是重要,但要理解其含義,為什麼這樣要這樣定義,目的是什麼。

下面我們實現aspx的功能,也許有些網友會直接如下寫法:
圖片描述

 這樣死寫法根本無需準備什麼資料來源。Insus.NET在想,這樣做也沒有什麼問題。因為它這樣確實可以的。看開發者開發時的想法與思維了。不過按照Insus.NET的習慣,資料呈現與程式封裝,還是在cs程式中對RadioButtonList進行資料來源繫結。如果後臺繫結資料來源,在aspx網頁只會拉一個RadioButtonList控制元件即可。
圖片描述

看.aspx.cs的

 圖片描述


上面程式碼是完全沒有問題,或許你就是這樣寫的。但是Insus.NET並不會這樣做,不想把任何在需要在Page_Load()事件執行的程式碼放在Page_Load()方法內。理想的實現,是另寫一個私有方法:
圖片描述

 在網頁瀏覽時,看到的效果:
圖片描述


OK,上面只是一些曾通的RadioButtonList的資料來源繫結。假如在資料來源繫結時,還要根據資料,男或女把RadioButtonList的選擇選中狀態。

圖片描述



但是,偏偏在你寫程式時,你會遇上是根據值去設定,它是以0或是1來判斷,那我們怎樣來實現了呢? 這樣情況之下,需要修改一下程式:
圖片描述


上面瀏覽網頁時,看到的效果,如下:
圖片描述

寫到這裡,我們會想起,真正開發時,我們是不知什麼情況之下是傳入Text,什麼情況之下傳入的是Value。嗯,我們就應該考慮到這些情形。下面Insus.NET的解決方法:
圖片描述

 

寫兩個私有方法,並過載。是Byvalue和ByText的。這樣在引用它們時,只是傳入是值或是文字即可。此時能把這個功能實現這樣,也許覺得很完美。但是某一情況之下,如你是使用DropDownList去呈現一些資料。上面的方法似乎有相似之處,但是完全不能拿來使用。只完另外再寫兩個方法:
圖片描述

 
對吧。我們會不禁住地問,是否有一個萬全之策? 解決這個問題,我們應該想到,不管是RadioButtonList還是DropDownList控制元件,均是繼承ListControl類,如果想到這點,我們就可以把這四個私有方法,寫成兩個通用的:
圖片描述

呵呵,此時不管你是傳入DropDownList還是RadioButtonList均沒有問題,是吧。

 平時,Insus.NET開發時,連引數也不想傳入過多。是否可以做到? 如: 

void SetSelectedByDataValueField(string byValue)


在較高一些C#版本,是可以解決此問題的。使用擴充套件方法:
圖片描述

 

那在引用時,就可以只傳入一個引數:
圖片描述

 

 上面一系列的動作,是解決RadioButtonList設定Selected的狀態。

在物件導向以及三層開發過程中,Insus.NET基本上沒有在程式中寫SQL語句來存與取同資料庫進行溝通。我們會在程式編寫一個類,如:
圖片描述

 

上面的類別,只寫一個property。因此這篇博文中,重點是說它。
使用者在前臺資料呈現中,作出選擇,需要把選擇的結果存回至資料表中,看一下語法

圖片描述

由於我們寫property時,定義的資料型別為布林(bool)。上面寫的

objMember.Sex = this.RadioButtonListSex.SelectedItem.Value;


一個是得到string,一個需要bool。因此需要處理一下資料型別,才能糾正錯誤:
圖片描述

上面程式碼示例中,是把選擇的值轉換為布林值。
由於開發一開始時,就為RadioButtonList控制元件設定了兩個值,0與1。因此我們可以對上面的程式碼稍改一下:圖片描述


拿掉高亮的程式碼,由於我們在Switch之前,已經定義好一個私有變數:

bool sex = true;


這樣不管使用者選擇了男還是女,程式在跑Switch時,只有case是0時,才會去轉換型別,對吧。既然是這樣,我們又可以把這資料型別轉換的寫成:
圖片描述


呵呵,隨便寫寫,望網友能看得懂。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2812082/,如需轉載,請註明出處,否則將追究法律責任。

相關文章