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

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   資料   

沒有什麼,開發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時,才會去轉換類型,對吧。既然是這樣,我們又可以把這資料類型轉換的寫成:



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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.