新年,把自己剛做的乙個控制項拿出來給大家分享,給自己動手做控制項的朋友切磋切磋。
現在在山西長治帶一幫童子軍做乙個警用地理資訊系統,前期一直在做設計,現在專案剛剛進入編碼階段。一日有組員做乙個資料錄入介面,有日期輸入字段。該老弟直接用乙個textbox就完事了,我批評說應該使用日曆控制項讓使用者可以選擇。
該老弟就在介面上直接拖了乙個calendar控制項,我說你能不能做乙個彈出式的,該老弟說微軟沒有提供彈出式的日曆控制項。我一查,果真如此,說那只能自己定義乙個控制項了。該老弟說不會。有專案組成員踴躍自薦,說他來做。我想想應該鼓勵,就讓他做了。晚上我來檢查成果,他是提交了。他使用乙個select和乙個calendar控制項包裝成了乙個下拉式日曆控制項,具體原始碼如下:
前台:
<%@ control language="c#" autoeventwireup="true" codefile="dplist.ascx.cs" classname="dplist" inherits="dplist" %>
後台:
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
public partial class dplist : system.web.ui.usercontrol }
應該說這是乙個使用者定義的控制項,但是該老兄將**提交給使用者的時候竟然不知道怎麼樣將選定的日期傳出,要呼叫者使用會話變數去取。我想這也是初學者容易犯的乙個錯誤。
在又好氣又好笑的同時,我給他新增了乙個get/set函式,解決了他的設定和取值的問題:
public datetime mydate
set }
public string getdatestring()
解決了設定和讀取值的問題後,呼叫者開始接入介面,到呼叫人員除錯介面的時候,問題開始出現:當介面上有幾個日期控制項的時候,所有的彈出的日曆只能在第乙個日期控制項的位置下顯示,所有的修改日期只能影響到第乙個日期控制項的值。
我看了看,只能一笑了之。這是因為他使用的是客戶端的div和select的原因,例項化後並沒有生成不同的名稱的標籤。
嘆了口氣,我只能重做。
花了大約15分鐘,重新製作了這個日期控制項:
前台:
<%@ control language="c#" autoeventwireup="true" codefile="dplist.ascx.cs" inherits="dplist" %>
後台:
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.text;
///
///模組編號: 《模組編號,可以引用系統設計中的模組編號》
///編寫日期:2010-02-07
///
public partial class dplist : system.web.ui.usercontrol }
} public datetime mydate
set }
public string getdatestring()
protected void calendar1_selectionchanged(object sender, eventargs e)
protected void button1_click(object sender, eventargs e)
protected void textbox1_textchanged(object sender, eventargs e) }
WEB控制項
web控制項 我想了半天也不知道如何定義這個web控制項,它比html控制項難於理解,畢竟html太像原來我們熟悉的東東了。而web控制項確與我們平常見到的有很大的出入,不知道大家還記不記得我說過的一句話,那就是asp.的程式就像是寫vbvc中的視窗,先再這些視窗中加入我們的需要的控制項,然後再對這...
WEB控制項
web控制項 我想了半天也不知道如何定義這個web控制項,它比html控制項難於理解,畢竟html太像原來我們熟悉的東東了。而web控制項確與我們平常見到的有很大的出入,不知道大家還記不記得我說過的一句話,那就是asp.net的程式就像是寫vbvc中的視窗,先再這些視窗中加入我們的需要的控制項,然後...
WEB控制項
web控制項 我想了半天也不知道如何定義這個web控制項,它比html控制項難於理解,畢竟html太像原來我們熟悉的東東了。而web控制項確與我們平常見到的有很大的出入,不知道大家還記不記得我說過的一句話,那就是asp.net的程式就像是寫vbvc中的視窗,先再這些視窗中加入我們的需要的控制項,然後...