說(shuō)明一個(gè)免費(fèi)的具備數(shù)據(jù)顯示/錄入/更新/刪除技巧的asp.net控件
發(fā)表時(shí)間:2024-06-19 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我不能說(shuō)它比datagrid更強(qiáng), 因?yàn)閐atagrid有很多深層次的東西可以發(fā)掘,但是我能說(shuō)它比datagrid更易用,更實(shí)用,因?yàn)樗呀?jīng)輕松實(shí)現(xiàn)如下功能,同時(shí),它是完全免費(fèi)的,不需要注冊(cè),沒(méi)有任何的功能限制。1、 通過(guò)屬性設(shè)置數(shù)據(jù)表的顯示2、 客戶端數(shù)據(jù)排序3、 各種字段類(lèi)型的格式化顯示4、 ...
我不能說(shuō)它比datagrid更強(qiáng), 因?yàn)閐atagrid有很多深層次的東西可以發(fā)掘,但是我能說(shuō)它比datagrid更易用,更實(shí)用,因?yàn)樗呀?jīng)輕松實(shí)現(xiàn)如下功能,同時(shí),它是完全免費(fèi)的,不需要注冊(cè),沒(méi)有任何的功能限制。
1、 通過(guò)屬性設(shè)置數(shù)據(jù)表的顯示
2、 客戶端數(shù)據(jù)排序
3、 各種字段類(lèi)型的格式化顯示
4、 所有數(shù)據(jù)表輕松實(shí)現(xiàn)內(nèi)置的數(shù)據(jù)添加、更新、刪除功能
5、 提供密碼字段的支持并使用32位MD5編碼
6、 添加、更新圖象字段、鏈接文件字段時(shí)自動(dòng)上傳文件
7、 上傳圖片時(shí)可以自動(dòng)生成縮略圖
8、 添加、更新時(shí)自動(dòng)生成了客戶端數(shù)據(jù)驗(yàn)證(空字符驗(yàn)證、最大字符數(shù)驗(yàn)證、數(shù)字格式驗(yàn)證、日期格式驗(yàn)證、電子郵件驗(yàn)證)
9、 自動(dòng)對(duì)日期/時(shí)間字段使用日期選擇器(javascript) ,自動(dòng)對(duì)數(shù)值字段實(shí)用數(shù)字選擇器
10、 內(nèi)置圖象字段生成程序,直接顯示圖象字段
11、 內(nèi)置可以自定義的詳細(xì)察看頁(yè)面
12、 已經(jīng)對(duì)輸入的參數(shù)進(jìn)行了過(guò)濾,防止sqlserver的注入攻擊
13、 防止非本頁(yè)提交
14、 自動(dòng)分頁(yè)技術(shù),減少查詢數(shù)據(jù)返回量
15、 提供內(nèi)置的字段值合計(jì)功能
16、 數(shù)據(jù)表直接導(dǎo)出EXCEL格式
17、 添加記錄時(shí)可以指定某列使用HTML編輯器
18、 直接對(duì)SQLSERVER操作
19、 支持存儲(chǔ)過(guò)程
20、 雙層表頭顯示
21、 子表顯示
22、 內(nèi)置查詢功能
23、 為每一個(gè)列生成點(diǎn)擊事件
24、 鼠標(biāo)右鍵功能
25、 內(nèi)置21種實(shí)用樣式
26、 行首直接可以生成Checkbox 或Radio
27、 數(shù)據(jù)表的多種顯示模式(數(shù)據(jù)表、縮略圖、報(bào)表)
更多的功能不能盡述。下面是該控件的簡(jiǎn)單應(yīng)用說(shuō)明:
一、第一次使用
1. 把DTABLE.DLL文件拷貝到項(xiàng)目的bin目錄下
2. 如同其他第三方控件一樣,在自定義工具箱中加入該控件
3. 把該控件拖動(dòng)到頁(yè)面合適的位置
4. 重新生成一下項(xiàng)目,即可發(fā)現(xiàn)您現(xiàn)在已經(jīng)可以訪問(wèn)northwind數(shù)據(jù)庫(kù)的雇員數(shù)據(jù)表了
5. 如果您開(kāi)發(fā)的機(jī)器上aspnet用戶有權(quán)限訪問(wèn)northwind數(shù)據(jù)庫(kù),那么您的頁(yè)面就默認(rèn)顯示雇員的數(shù)據(jù)表,否則就會(huì)提示您沒(méi)有權(quán)限訪問(wèn)該數(shù)據(jù)庫(kù)。
二、立即顯示你所需要的數(shù)據(jù)表
1、DTABLE控制數(shù)據(jù)表的顯示是依靠屬性來(lái)設(shè)置的。通常情況下,它的屬性都具有一些默認(rèn)值。如果您覺(jué)得它顯示的結(jié)果不是您所需要的,那么請(qǐng)更改相關(guān)的屬性來(lái)獲得您所需要的結(jié)果。
2、 首先,你必須要指定3個(gè)屬性,這樣才可以立即顯示您的數(shù)據(jù)表。
a) 數(shù)據(jù)庫(kù)連接字符串屬性DataConnectString 。
使用時(shí)設(shè)置如:
DTable1.DataConnectString=” data source=localhost;integrated security=sspi;initial catalog=mydatabase”;
當(dāng)然,您也可以預(yù)先把鏈接字串封裝為其他形式或者是一個(gè)全局的變量。如:
DTable1. DataConnectString=Include.datastr;
b) 數(shù)據(jù)表的名稱TableName 。
使用時(shí)設(shè)置如:
DTable1.TableName="user_tb";
c) 數(shù)據(jù)列表的查詢語(yǔ)句List_SqlText
使用時(shí)設(shè)置如:
DTable1.List_SqlText ="select * from user_tb";
3、 OK,如果您在Page_load事件中定義了上述3個(gè)屬性,那么您重新生成后即可立即得到您所定義的數(shù)據(jù)表列表了,而且DTABLE自動(dòng)給您定義了表的交錯(cuò)行樣式、TITLE樣式以及分頁(yè)欄、行首序號(hào)等。
4、 您現(xiàn)在雙擊第一列鏈接,就可以立即查看該行的所以字段信息。當(dāng)然,這是DTABLE默認(rèn)允許詳細(xì)查看的結(jié)果,您也可以關(guān)閉,或者自己定義在詳細(xì)查看時(shí)需要顯示的字段乃至字段的名稱……乃至字段的類(lèi)型轉(zhuǎn)換等等。
三、立即擁有記錄更新、添加、刪除的功能而不需要編寫(xiě)其它代碼。您所需要做的就是設(shè)置3個(gè)屬性而已。
1. 允許內(nèi)置的更新功能:AE_EnableEdit
設(shè)置:DTable1. AE_EnableEdit=true;
a) 如何使用內(nèi)置更新功能?
當(dāng)允許了內(nèi)置更新功能以后,數(shù)據(jù)列表自動(dòng)會(huì)出現(xiàn)數(shù)據(jù)“更新按鈕”,您點(diǎn)擊該按鈕即進(jìn)入更新列表的狀態(tài)。
b) 如何更改數(shù)據(jù)更新按鈕的外觀?
通過(guò)設(shè)置屬性:AE_EditButton_Htm來(lái)定義更新按鈕的樣式。例如設(shè)置該更新按鈕為一個(gè)圖片edit.gif為:
DTable1. AE_EditButton_Htm=”<img src=http://cfan.net.cn/info/images/edit.gif border=0>”
c) 如何定義需要更新的字段?
默認(rèn)狀態(tài),記錄更新界面將列出該表的所有字段。可以通過(guò)一個(gè)屬性設(shè)置更新界面顯示出來(lái)的字段:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年齡,性別”
此時(shí),更新界面就僅僅列出姓名、年齡、性別這3個(gè)字段提供更改數(shù)據(jù)。
d) 記錄更新界面有什么不同之處?
DTABLE在記錄更新界面提供了大量的易用功能來(lái)提高數(shù)據(jù)錄入的有效性和錄入速度。例如:它自動(dòng)對(duì)日期字段提供日期選擇器(單擊打開(kāi)選擇器),自動(dòng)對(duì)數(shù)值字段提供計(jì)算器(雙擊打開(kāi)計(jì)算器)。而且,DTABLE自動(dòng)生成客戶端的數(shù)字、日期、最大字符數(shù)、不允許空值的檢驗(yàn)。
e) 關(guān)于記錄更新的安全問(wèn)題
DTABLE內(nèi)置了防止跨頁(yè)提交的功能,即:系統(tǒng)只對(duì)本物理頁(yè)面提交的數(shù)據(jù)進(jìn)行更新,從其他任何頁(yè)面,即使來(lái)自本站點(diǎn)的頁(yè)面所提交的數(shù)據(jù)禁止更新。同時(shí),DTABLE還提供防重復(fù)提交的功能,你不能使用刷新功能來(lái)反復(fù)提交數(shù)據(jù)。
f) 如何限制更新的條件?
您可以通過(guò)屬性設(shè)置要更新的數(shù)據(jù)必須是符合一定規(guī)則的數(shù)據(jù)。詳情請(qǐng)查看后面的記錄更新與添加的高級(jí)應(yīng)用。
2. 允許內(nèi)置的刪除功能:AE_EnableDelete
設(shè)置:DTable1. AE_EnableDelete=true;
a) 如何使用內(nèi)置刪除功能?
當(dāng)您允許了內(nèi)置的刪除功能后,數(shù)據(jù)表就會(huì)自動(dòng)添加一列刪除按鈕。
b) 如何更改刪除按鈕的樣式?
通過(guò)設(shè)置一個(gè)屬性來(lái)定義刪除按鈕的外觀:AE_DeleteButton_Html 如:
DTable1. AE_DeleteButton_Html=”<img src=http://cfan.net.cn/info/images/delete.gif border=0>”
c) 如何確保刪除功能的安全?
同內(nèi)置的記錄更新一樣,DTABLE禁止了跨頁(yè)提交刪除命令。同時(shí)也提供其他的限制來(lái)禁止非法刪除。詳情請(qǐng)看記錄更新、添加、刪除的高級(jí)應(yīng)用篇。
3. 允許記錄添加:AE_EnableAddNew
設(shè)置:DTable1. AE_EnableAddNew=true;
a) 如何進(jìn)入記錄添加狀態(tài)?
通過(guò)訪問(wèn)當(dāng)前頁(yè)面+參數(shù)的方式來(lái)訪問(wèn)記錄添加界面。當(dāng)然,前提是:您已經(jīng)允許記錄添加功能。如:
http://localhost/test/test.aspx?addnew=true
上述這個(gè)鏈接后面附帶的參數(shù):?addnew=true即可進(jìn)入記錄添加界面。如果您沒(méi)有允許記錄添加功能,則不會(huì)進(jìn)入記錄添加界面,而是直接進(jìn)入數(shù)據(jù)列表顯示界面。
b) 如何定義記錄添加的字段?
如同定義記錄更時(shí)的字段一樣:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年齡,性別”
記錄添加與更新都使用同一個(gè)屬性來(lái)定義需要顯示的字段。
c) 如何定義確保添加記錄的安全?
同記錄更新。
d) DTABLE的記錄添加有何不同之處?
同記錄更新。
四、自己定義數(shù)據(jù)表顯示1、定義不同類(lèi)型數(shù)據(jù)的顯示
a) 布爾字段
布爾字段在SQLSERVER中為bit類(lèi)型,允許的值為1和0。如果我們的數(shù)據(jù)表要顯示布爾字段,那么系統(tǒng)默認(rèn)可能會(huì)顯示true和false。DTABLE提供了一個(gè)屬性來(lái)定義這種布爾值的轉(zhuǎn)換:List_FormatBoolReplace_No 例如:我們要把一個(gè)查詢select id,姓名,年齡,性別,目前薪金,近照,畢業(yè)證書(shū)圖片 from user_tb所返回的記錄中的布爾字段“性別”替換為“男”和“女”,可以設(shè)置該屬性DTable1. List_FormatBoolReplace_No=”3 男 女”即可。
當(dāng)然,也可以在查詢語(yǔ)句中直接設(shè)置了替換。
b) 保存了圖片路徑的字段
通過(guò)設(shè)置一個(gè)屬性告訴DTABLE,某一個(gè)字段屬于保存了圖片路徑的字段,DTABLE就會(huì)自動(dòng)使用該路徑到一個(gè)圖片標(biāo)簽中去。如:DTable1.List_UrlImage_No=” 6 ”;
當(dāng)然,如果有多個(gè)這樣的字段,直接設(shè)置即可:DTable1. List_UrlImage_No=” 6 7 ”;
請(qǐng)留意:這里的數(shù)字序號(hào)指的是數(shù)據(jù)列表顯示出來(lái)的列序號(hào),而查詢語(yǔ)句的第一列不被顯示(作為唯一標(biāo)識(shí)使用)。
c) 貨幣字段
通過(guò)2個(gè)簡(jiǎn)單的屬性設(shè)置貨幣字段的顯示:
List_FormatCur_No定義了需要作為貨幣格式顯示的字段序列,同樣允許多個(gè)貨幣字段的顯示,設(shè)置如:DTable. List_FormatCur_No=” 4 6 7”; 即:第4、6、7字段都是貨幣字段,按貨幣格式顯示。
另外一個(gè)屬性定義了貨幣顯示的前綴:List_FormatCur_str ,人民幣設(shè)置為:DTable1. List_FormatCur_str=”¥”;美元應(yīng)該如何設(shè)置就不用我重復(fù)了吧?
d) 內(nèi)置的二進(jìn)制圖像字段
DTABLE允許直接顯示內(nèi)置的二進(jìn)制圖像字段。但它并不是自動(dòng)就開(kāi)始顯示了,您需要進(jìn)行如下操作才能正常顯示:
1。定義二進(jìn)制圖像字段的列名:Test_ImgFieldName 即:DTable1. Test_ImgFieldName=”畢業(yè)證書(shū)圖片”;
2。定義用于查看二進(jìn)制圖像字段的文件名。這個(gè)文件名是系統(tǒng)即將自動(dòng)生成的一個(gè)文件。如果您的當(dāng)前目錄只有一個(gè)頁(yè)面會(huì)用到直接查看二進(jìn)制圖像字段,則可以不用定義此屬性。因?yàn)樗幸粋(gè)默認(rèn)的定義。這個(gè)屬性是Test_ShowImg_FileName,你可以自己定義一個(gè)文件名:DTable1. Test_ShowImg_FileName=”showimg.aspx”;
3。生成該文件。通過(guò)訪問(wèn):當(dāng)前頁(yè)的路徑+參數(shù)即可立即生成該頁(yè)面。如:訪問(wèn)
http://localhost/test/test.aspx?MakeShowImgFile=True即可生成showimg.aspx這個(gè)文件。
如果您定義的列名是中文,您可能還需要用編輯器打開(kāi)showimg.aspx,把里面不正確的列名更正一下。
4。上述3個(gè)步驟通常僅需要進(jìn)行一次即可。您最后定義一個(gè)屬性告訴DTABLE哪一些字段是二進(jìn)制圖像字段:List_Image_No 如:
DTable1. List_Image_No=” 5 9 12 ”; 即:第5、9、12列都是二進(jìn)制圖像字段。屆時(shí),數(shù)據(jù)表自動(dòng)使用這樣的標(biāo)簽來(lái)實(shí)現(xiàn):<img src=showimg.aspx?id=xxx>
下面是該控件在數(shù)據(jù)錄入、更新、刪除中應(yīng)用的簡(jiǎn)單說(shuō)明:
一、進(jìn)入數(shù)據(jù)添加、更新?tīng)顟B(tài)
1、進(jìn)入數(shù)據(jù)添加界面
通過(guò)訪問(wèn)當(dāng)前頁(yè)面+參數(shù)的方式來(lái)進(jìn)入數(shù)據(jù)添加狀態(tài)。例如當(dāng)前頁(yè)面名稱為:showdtable.aspx,那么進(jìn)入添加界面的路徑應(yīng)該是http://yoursite/aspnetapplication/showdtable.aspx?addnew=true
您可以通過(guò)超鏈接、圖片鏈接、按鈕動(dòng)作來(lái)進(jìn)入該頁(yè)面。
當(dāng)然,前提是你必須允許數(shù)據(jù)添加:DTable1.AE_EnableAddNew=true;
2、進(jìn)入數(shù)據(jù)更新界面
進(jìn)入數(shù)據(jù)更新界面有多種方式。
1)通過(guò)內(nèi)置的更新按鈕進(jìn)入更新界面
要開(kāi)啟內(nèi)置的更新按鈕,必須要設(shè)置一個(gè)屬性:DTable1. AE_EnableEdit=true;
該屬性定義了:允許內(nèi)置的記錄更新功能。此時(shí)顯示數(shù)據(jù)表會(huì)自動(dòng)添加記錄更新的鏈接,通過(guò)點(diǎn)擊該鏈接進(jìn)入記錄更新界面。
相關(guān)屬性:
2)通過(guò)外部自定義鏈接進(jìn)入記錄更新界面。你需要先設(shè)置一個(gè)屬性: AE_showED_button 該屬性定義在允許內(nèi)置的更新功能時(shí),是否自動(dòng)顯示進(jìn)入更新界面的鏈接按鈕。默認(rèn)為顯示。
當(dāng)您決定通過(guò)自己定義來(lái)實(shí)現(xiàn)進(jìn)入更新界面時(shí),可以定義該屬性為false。需要注意的是:如果從外部進(jìn)入更新界面,必須要給出鏈接參數(shù):furl=xxxxx。如:
http://localhost/test/test.aspx?MeditID=28&Furl=/test/test.aspx?PageNo=1
meditid和furl參數(shù)是必須的。Meditid定義了記錄的ID,furl定義了進(jìn)入更新界面的源頁(yè)面路徑。您可以通過(guò)Page.Request.CurrentExecutionFilePath來(lái)獲取當(dāng)前的路徑。
二、定制記錄添加界面
1、定義需要在添加記錄時(shí)的字段
默認(rèn)狀態(tài),DTABLE會(huì)把數(shù)據(jù)表的所有字段作為添加時(shí)所需的字段。它提供了一個(gè)屬性來(lái)定義你真正需要的字段,并通過(guò)對(duì)字段重定義列名來(lái)隱藏?cái)?shù)據(jù)表的真實(shí)細(xì)節(jié)。
DTable1. AE_FieldList=”id,yourname as 姓名,yousex as 性別,yourage as 年齡”;
通過(guò)這樣的設(shè)置,數(shù)據(jù)表就會(huì)顯示姓名、性別、年齡3個(gè)字段提供錄入。ID作為標(biāo)識(shí)字段,一定要放在第一位,否則將會(huì)出錯(cuò)。
2、了解DTABLE在記錄添加界面都提供了哪些特性。
1)DTABLE對(duì)string字段將自動(dòng)使用最大字符數(shù)限制、空字符檢驗(yàn)
2)DTABLE對(duì)布爾字段自動(dòng)使用單選按鈕。如果該布爾字段允許空值,則默認(rèn)顯示為均未選取狀態(tài)。
3)DTABLE對(duì)日期、時(shí)間字段自動(dòng)使用日期選擇器,禁止了鍵盤(pán)錄入。雖然DTABLE不允許通過(guò)鍵盤(pán)輸入日期字符,但是在提交時(shí)仍然會(huì)檢測(cè)該字段的日期是否合法。
4)DTABLE對(duì)數(shù)值、money字段自動(dòng)使用計(jì)算器錄入,通過(guò)雙擊文本控件打開(kāi)計(jì)算器,同時(shí)允許鍵盤(pán)錄入。提交時(shí)將檢驗(yàn)輸入的字符是否為合法的數(shù)字。需要注意的是:客戶端數(shù)值驗(yàn)證只允許2位小數(shù)的數(shù)值,大于2位小數(shù)的數(shù)值被認(rèn)為非法。
5)DTABLE為記錄鏈接圖片地址和鏈接圖片文件的字段提供文件立即上傳功能,并能夠?qū)⑽募、文件路徑保存到相關(guān)的字段;甚至還可以生成縮略圖;不限制改類(lèi)字段的數(shù)量。
例如:?jiǎn)T工表的第5列記錄了員工的學(xué)歷證明圖片,第6列記錄了員工提供的培訓(xùn)證書(shū)圖片,我們則可以通過(guò)定義屬性:Dtable.AE_Upfiles_No=” 5 6 ”;
這個(gè)屬性告訴DTABLE,第5、6列為文件上傳列。在進(jìn)入記錄添加界面時(shí),第5、6列位置自動(dòng)顯示文件控件,并能在提交時(shí)自動(dòng)上傳圖片。
相關(guān)屬性:
AE_Upfile_AutoReName:上傳的文件是否自動(dòng)重新命名。默認(rèn)為true,即:允許自動(dòng)重命名
AE_UpFilesFd:定義上傳的文件需要保存的路徑,請(qǐng)指定一個(gè)相對(duì)路徑。例如:./images或../images/abcde
需要確認(rèn)的是:你的站點(diǎn)必須要存在該文件夾。
AE_Miniature_Fd:定義縮略圖存放的路徑。如果定義了該屬性,DTABLE就認(rèn)為你所有的Dtable.AE_Upfiles_No所定義的文件上傳字段都需要生成縮略圖!!
AE_Miniature_width:生成縮略圖的最大寬度,同時(shí)請(qǐng)指定縮略圖的最大高度。屬性類(lèi)別為Integer
AE_Miniature_height:生成縮略圖的最大高度,同時(shí)請(qǐng)指定縮略圖的最大寬度。屬性類(lèi)型為Integer
6)DTABLE可以直接上傳文件到內(nèi)置的二進(jìn)制圖像字段,且沒(méi)有數(shù)量限制。