国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET開發,且編且改,分清職責

2019-11-17 01:37:07
字體:
來源:轉載
供稿:網友

asp.net開發,且編且改,分清職責

本篇Insus.NET使用一個實例,分享在ASP.NET開發時,一個功能一個方法(函數),且編且改,一步一個腳印把實例完成。在方法多變多形式的情況之下,怎樣把寫出來程序簡單明了。

下面是一個Excel文檔:http://download.VEVb.com/insus/ASPDOTNET/Book1.rar

現在是要讀取它,并顯示于GridView控件上,方法參考《Excel上傳并讀取數據》http://m.survivalescaperooms.com/insus/p/3814857.html由于一些字段在本篇中,無用,因此刪除之。

"SELECT [性別],[所屬部門],[職務],[在職否] FROM [Sheet1$]"

我們在xxx.aspx 的html markup中。拉一個GridView控件,并使用自定義模版:

讀取Excel演示:

現在要求來了,用戶需要讀取與加載Excel至GridView之后,希望能編輯數據。但不想按照傳統方式一樣,一行一行點擊編輯銨鈕之后,才能進入編輯狀態,而一開始就是能編輯。怎樣實現編輯,四個字段,前后字段“性別”與“在職否”,只有兩個值。“男”與“女”; “在職”與“離職” 可以使用RadioButtonList控件。而中間兩個字段中“所屬部門”與“職位”,多值呈現,可以使用DropDownList控件:

既然有控件,我們需要拿數據源來給這些控件數據綁定。由于這些控件均是在GridView控件內的,綁定在OnRowDataBound事件中進行。

四個嵌套在GridView控件內的控件數據綁定:

上面代碼示例中,Insus.NET只做兩個控件的示意,一個DropDownList和一個RadioButtonList。它們的數據源有來自數據庫,有來自函數。你需要指定顯示的數據(DataTextFeid),哪一個用作后端獲取的數據(DataValueField)。這需要根據你開發時的需求了。

寫到這里,你發現四個控件在綁定數據源時,有代碼冗余:

 ccc.DataSource = xxx; ccc.DataTextField = yyy; ccc.DataValueField = zzz; ccc.DataBind();

我們可以重構為一個方法,在重構之前,我們會遇上二個問題要考慮的,一個是控件不同。RadioButtonList和DropDownList;二是被綁定的數據源不同,一些為泛型,DataTable等。處理好這些,需要想出一個萬全之策。如:

看到兩個紅箭頭否,由于RadioButtonList和DropDownList控件,均是繼承了ListControl控件。數據源不管是什么,均宣告為object即可。然后上面的四個控件的綁定,就可以使用這個方法了:

如果把注釋掉的代碼拿掉,是不是簡潔多了?看看運行時瀏覽的效果:

現在看到一個問題,中間兩個DropDownList下拉列表,沒有“--選擇--”選項。怎樣加入第一個項呢?哦,這個簡單:

添加上面兩行高亮代碼,得到地效果如下:

到現在為止,我們只是對控件進行數據源綁定。回頭來看看下載的Excel數據:

正確來說,應該是把數據原始狀態一起綁定,OK,解決此問題,再寫程序:

把每筆記錄與控件綁定的數據時行匹配,匹配的,改變狀態。瀏覽看看結果:

嗯,越來越接近理想的要求了。開發就是這樣,一個功能,一個方法或是一個函數,分清職責。呵呵明眼人,又會看到上面的代碼有冗余了:

 foreach (ListItem li in ccc.Items)                    li.Selected = li.Text == drv["xxx"].ToString() ? true : false;

Insus.NET在開發過程中,一旦發現有代碼冗余,必需重構之,不然看上去就不舒服。創建一個方法吧:

有關這個方法,你還可以參考另外一篇《沒有什么,開發ASP.NET時隨便寫寫,想到什么寫什么》http://m.survivalescaperooms.com/insus/p/3810032.html將學到更好的方法重構。

寫好這個公用的方法之后,我們去改寫那些冗余的代碼:

一步一個步驟,把程序寫好......


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵台县| 汾阳市| 枣强县| 武定县| 视频| 广元市| 仁化县| 营口市| 延长县| 万荣县| 丹江口市| 元谋县| 应城市| 平顶山市| 慈利县| 瑞安市| 三江| 化德县| 江都市| 井陉县| 渝北区| 张家港市| 巍山| 昭平县| 天峻县| 宁明县| 玉龙| 多伦县| 阿荣旗| 商河县| 永定县| 通山县| 山东省| 高清| 温泉县| 来宾市| 武山县| 银川市| 铜川市| 庆安县| 茌平县|