明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

說明一個免費的具備數(shù)據(jù)顯示/錄入/更新/刪除技巧的asp.net控件

[摘要]我不能說它比datagrid更強, 因為datagrid有很多深層次的東西可以發(fā)掘,但是我能說它比datagrid更易用,更實用,因為它已經(jīng)輕松實現(xiàn)如下功能,同時,它是完全免費的,不需要注冊,沒有任何的功能限制。1、 通過屬性設置數(shù)據(jù)表的顯示2、 客戶端數(shù)據(jù)排序3、 各種字段類型的格式化顯示4、 ...
我不能說它比datagrid更強, 因為datagrid有很多深層次的東西可以發(fā)掘,但是我能說它比datagrid更易用,更實用,因為它已經(jīng)輕松實現(xiàn)如下功能,同時,它是完全免費的,不需要注冊,沒有任何的功能限制。

1、 通過屬性設置數(shù)據(jù)表的顯示
2、 客戶端數(shù)據(jù)排序
3、 各種字段類型的格式化顯示
4、 所有數(shù)據(jù)表輕松實現(xiàn)內(nèi)置的數(shù)據(jù)添加、更新、刪除功能
5、 提供密碼字段的支持并使用32位MD5編碼
6、 添加、更新圖象字段、鏈接文件字段時自動上傳文件
7、 上傳圖片時可以自動生成縮略圖
8、 添加、更新時自動生成了客戶端數(shù)據(jù)驗證(空字符驗證、最大字符數(shù)驗證、數(shù)字格式驗證、日期格式驗證、電子郵件驗證)
9、 自動對日期/時間字段使用日期選擇器(javascript) ,自動對數(shù)值字段實用數(shù)字選擇器
10、 內(nèi)置圖象字段生成程序,直接顯示圖象字段
11、 內(nèi)置可以自定義的詳細察看頁面
12、 已經(jīng)對輸入的參數(shù)進行了過濾,防止sqlserver的注入攻擊
13、 防止非本頁提交
14、 自動分頁技術(shù),減少查詢數(shù)據(jù)返回量
15、 提供內(nèi)置的字段值合計功能
16、 數(shù)據(jù)表直接導出EXCEL格式
17、 添加記錄時可以指定某列使用HTML編輯器
18、 直接對SQLSERVER操作
19、 支持存儲過程
20、 雙層表頭顯示
21、 子表顯示
22、 內(nèi)置查詢功能
23、 為每一個列生成點擊事件
24、 鼠標右鍵功能
25、 內(nèi)置21種實用樣式
26、 行首直接可以生成Checkbox 或Radio
27、 數(shù)據(jù)表的多種顯示模式(數(shù)據(jù)表、縮略圖、報表)


更多的功能不能盡述。下面是該控件的簡單應用說明:

一、第一次使用
1. 把DTABLE.DLL文件拷貝到項目的bin目錄下
2. 如同其他第三方控件一樣,在自定義工具箱中加入該控件
3. 把該控件拖動到頁面合適的位置
4. 重新生成一下項目,即可發(fā)現(xiàn)您現(xiàn)在已經(jīng)可以訪問northwind數(shù)據(jù)庫的雇員數(shù)據(jù)表了
5. 如果您開發(fā)的機器上aspnet用戶有權(quán)限訪問northwind數(shù)據(jù)庫,那么您的頁面就默認顯示雇員的數(shù)據(jù)表,否則就會提示您沒有權(quán)限訪問該數(shù)據(jù)庫。



二、立即顯示你所需要的數(shù)據(jù)表
1、DTABLE控制數(shù)據(jù)表的顯示是依靠屬性來設置的。通常情況下,它的屬性都具有一些默認值。如果您覺得它顯示的結(jié)果不是您所需要的,那么請更改相關(guān)的屬性來獲得您所需要的結(jié)果。
2、 首先,你必須要指定3個屬性,這樣才可以立即顯示您的數(shù)據(jù)表。
a) 數(shù)據(jù)庫連接字符串屬性DataConnectString 。
使用時設置如:
DTable1.DataConnectString=” data source=localhost;integrated security=sspi;initial catalog=mydatabase”;
當然,您也可以預先把鏈接字串封裝為其他形式或者是一個全局的變量。如:
DTable1. DataConnectString=Include.datastr;

b) 數(shù)據(jù)表的名稱TableName 。
使用時設置如:
DTable1.TableName="user_tb";

c) 數(shù)據(jù)列表的查詢語句List_SqlText
使用時設置如:
DTable1.List_SqlText ="select * from user_tb";

3、 OK,如果您在Page_load事件中定義了上述3個屬性,那么您重新生成后即可立即得到您所定義的數(shù)據(jù)表列表了,而且DTABLE自動給您定義了表的交錯行樣式、TITLE樣式以及分頁欄、行首序號等。
4、 您現(xiàn)在雙擊第一列鏈接,就可以立即查看該行的所以字段信息。當然,這是DTABLE默認允許詳細查看的結(jié)果,您也可以關(guān)閉,或者自己定義在詳細查看時需要顯示的字段乃至字段的名稱……乃至字段的類型轉(zhuǎn)換等等。


三、立即擁有記錄更新、添加、刪除的功能而不需要編寫其它代碼。您所需要做的就是設置3個屬性而已。
1. 允許內(nèi)置的更新功能:AE_EnableEdit
設置:DTable1. AE_EnableEdit=true;

a) 如何使用內(nèi)置更新功能?
當允許了內(nèi)置更新功能以后,數(shù)據(jù)列表自動會出現(xiàn)數(shù)據(jù)“更新按鈕”,您點擊該按鈕即進入更新列表的狀態(tài)。
b) 如何更改數(shù)據(jù)更新按鈕的外觀?
通過設置屬性:AE_EditButton_Htm來定義更新按鈕的樣式。例如設置該更新按鈕為一個圖片edit.gif為:
DTable1. AE_EditButton_Htm=”<img src=http://cfan.net.cn/info/images/edit.gif border=0>”
c) 如何定義需要更新的字段?
默認狀態(tài),記錄更新界面將列出該表的所有字段。可以通過一個屬性設置更新界面顯示出來的字段:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年齡,性別”
此時,更新界面就僅僅列出姓名、年齡、性別這3個字段提供更改數(shù)據(jù)。
d) 記錄更新界面有什么不同之處?
DTABLE在記錄更新界面提供了大量的易用功能來提高數(shù)據(jù)錄入的有效性和錄入速度。例如:它自動對日期字段提供日期選擇器(單擊打開選擇器),自動對數(shù)值字段提供計算器(雙擊打開計算器)。而且,DTABLE自動生成客戶端的數(shù)字、日期、最大字符數(shù)、不允許空值的檢驗。
e) 關(guān)于記錄更新的安全問題
DTABLE內(nèi)置了防止跨頁提交的功能,即:系統(tǒng)只對本物理頁面提交的數(shù)據(jù)進行更新,從其他任何頁面,即使來自本站點的頁面所提交的數(shù)據(jù)禁止更新。同時,DTABLE還提供防重復提交的功能,你不能使用刷新功能來反復提交數(shù)據(jù)。
f) 如何限制更新的條件?
您可以通過屬性設置要更新的數(shù)據(jù)必須是符合一定規(guī)則的數(shù)據(jù)。詳情請查看后面的記錄更新與添加的高級應用。
2. 允許內(nèi)置的刪除功能:AE_EnableDelete
設置:DTable1. AE_EnableDelete=true;
a) 如何使用內(nèi)置刪除功能?
當您允許了內(nèi)置的刪除功能后,數(shù)據(jù)表就會自動添加一列刪除按鈕。
b) 如何更改刪除按鈕的樣式?
通過設置一個屬性來定義刪除按鈕的外觀:AE_DeleteButton_Html 如:
DTable1. AE_DeleteButton_Html=”<img src=http://cfan.net.cn/info/images/delete.gif border=0>”
c) 如何確保刪除功能的安全?
同內(nèi)置的記錄更新一樣,DTABLE禁止了跨頁提交刪除命令。同時也提供其他的限制來禁止非法刪除。詳情請看記錄更新、添加、刪除的高級應用篇。
3. 允許記錄添加:AE_EnableAddNew
設置:DTable1. AE_EnableAddNew=true;
a) 如何進入記錄添加狀態(tài)?
通過訪問當前頁面+參數(shù)的方式來訪問記錄添加界面。當然,前提是:您已經(jīng)允許記錄添加功能。如:
http://localhost/test/test.aspx?addnew=true
上述這個鏈接后面附帶的參數(shù):?addnew=true即可進入記錄添加界面。如果您沒有允許記錄添加功能,則不會進入記錄添加界面,而是直接進入數(shù)據(jù)列表顯示界面。
b) 如何定義記錄添加的字段?
如同定義記錄更時的字段一樣:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年齡,性別”
記錄添加與更新都使用同一個屬性來定義需要顯示的字段。
c) 如何定義確保添加記錄的安全?
同記錄更新。
d) DTABLE的記錄添加有何不同之處?
同記錄更新。


四、自己定義數(shù)據(jù)表顯示1、定義不同類型數(shù)據(jù)的顯示
a) 布爾字段
布爾字段在SQLSERVER中為bit類型,允許的值為1和0。如果我們的數(shù)據(jù)表要顯示布爾字段,那么系統(tǒng)默認可能會顯示true和false。DTABLE提供了一個屬性來定義這種布爾值的轉(zhuǎn)換:List_FormatBoolReplace_No 例如:我們要把一個查詢select id,姓名,年齡,性別,目前薪金,近照,畢業(yè)證書圖片 from user_tb所返回的記錄中的布爾字段“性別”替換為“男”和“女”,可以設置該屬性DTable1. List_FormatBoolReplace_No=”3 男 女”即可。
當然,也可以在查詢語句中直接設置了替換。
b) 保存了圖片路徑的字段
通過設置一個屬性告訴DTABLE,某一個字段屬于保存了圖片路徑的字段,DTABLE就會自動使用該路徑到一個圖片標簽中去。如:DTable1.List_UrlImage_No=” 6 ”;
當然,如果有多個這樣的字段,直接設置即可:DTable1. List_UrlImage_No=” 6 7 ”;
請留意:這里的數(shù)字序號指的是數(shù)據(jù)列表顯示出來的列序號,而查詢語句的第一列不被顯示(作為唯一標識使用)。
c) 貨幣字段
通過2個簡單的屬性設置貨幣字段的顯示:
List_FormatCur_No定義了需要作為貨幣格式顯示的字段序列,同樣允許多個貨幣字段的顯示,設置如:DTable. List_FormatCur_No=” 4 6 7”; 即:第4、6、7字段都是貨幣字段,按貨幣格式顯示。
另外一個屬性定義了貨幣顯示的前綴:List_FormatCur_str ,人民幣設置為:DTable1. List_FormatCur_str=”¥”;美元應該如何設置就不用我重復了吧?
d) 內(nèi)置的二進制圖像字段
DTABLE允許直接顯示內(nèi)置的二進制圖像字段。但它并不是自動就開始顯示了,您需要進行如下操作才能正常顯示:
1。定義二進制圖像字段的列名:Test_ImgFieldName 即:DTable1. Test_ImgFieldName=”畢業(yè)證書圖片”;
2。定義用于查看二進制圖像字段的文件名。這個文件名是系統(tǒng)即將自動生成的一個文件。如果您的當前目錄只有一個頁面會用到直接查看二進制圖像字段,則可以不用定義此屬性。因為它有一個默認的定義。這個屬性是Test_ShowImg_FileName,你可以自己定義一個文件名:DTable1. Test_ShowImg_FileName=”showimg.aspx”;
3。生成該文件。通過訪問:當前頁的路徑+參數(shù)即可立即生成該頁面。如:訪問
http://localhost/test/test.aspx?MakeShowImgFile=True即可生成showimg.aspx這個文件。
如果您定義的列名是中文,您可能還需要用編輯器打開showimg.aspx,把里面不正確的列名更正一下。
4。上述3個步驟通常僅需要進行一次即可。您最后定義一個屬性告訴DTABLE哪一些字段是二進制圖像字段:List_Image_No 如:
DTable1. List_Image_No=” 5 9 12 ”; 即:第5、9、12列都是二進制圖像字段。屆時,數(shù)據(jù)表自動使用這樣的標簽來實現(xiàn):<img src=showimg.aspx?id=xxx>



下面是該控件在數(shù)據(jù)錄入、更新、刪除中應用的簡單說明:

一、進入數(shù)據(jù)添加、更新狀態(tài)

1、進入數(shù)據(jù)添加界面

通過訪問當前頁面+參數(shù)的方式來進入數(shù)據(jù)添加狀態(tài)。例如當前頁面名稱為:showdtable.aspx,那么進入添加界面的路徑應該是http://yoursite/aspnetapplication/showdtable.aspx?addnew=true
您可以通過超鏈接、圖片鏈接、按鈕動作來進入該頁面。
當然,前提是你必須允許數(shù)據(jù)添加:DTable1.AE_EnableAddNew=true;

2、進入數(shù)據(jù)更新界面

進入數(shù)據(jù)更新界面有多種方式。

1)通過內(nèi)置的更新按鈕進入更新界面
要開啟內(nèi)置的更新按鈕,必須要設置一個屬性:DTable1. AE_EnableEdit=true;
該屬性定義了:允許內(nèi)置的記錄更新功能。此時顯示數(shù)據(jù)表會自動添加記錄更新的鏈接,通過點擊該鏈接進入記錄更新界面。
相關(guān)屬性:

2)通過外部自定義鏈接進入記錄更新界面。你需要先設置一個屬性: AE_showED_button 該屬性定義在允許內(nèi)置的更新功能時,是否自動顯示進入更新界面的鏈接按鈕。默認為顯示。
當您決定通過自己定義來實現(xiàn)進入更新界面時,可以定義該屬性為false。需要注意的是:如果從外部進入更新界面,必須要給出鏈接參數(shù):furl=xxxxx。如:
http://localhost/test/test.aspx?MeditID=28&Furl=/test/test.aspx?PageNo=1
meditid和furl參數(shù)是必須的。Meditid定義了記錄的ID,furl定義了進入更新界面的源頁面路徑。您可以通過Page.Request.CurrentExecutionFilePath來獲取當前的路徑。

二、定制記錄添加界面

1、定義需要在添加記錄時的字段

默認狀態(tài),DTABLE會把數(shù)據(jù)表的所有字段作為添加時所需的字段。它提供了一個屬性來定義你真正需要的字段,并通過對字段重定義列名來隱藏數(shù)據(jù)表的真實細節(jié)。
DTable1. AE_FieldList=”id,yourname as 姓名,yousex as 性別,yourage as 年齡”;
通過這樣的設置,數(shù)據(jù)表就會顯示姓名、性別、年齡3個字段提供錄入。ID作為標識字段,一定要放在第一位,否則將會出錯。

2、了解DTABLE在記錄添加界面都提供了哪些特性。

1)DTABLE對string字段將自動使用最大字符數(shù)限制、空字符檢驗

2)DTABLE對布爾字段自動使用單選按鈕。如果該布爾字段允許空值,則默認顯示為均未選取狀態(tài)。

3)DTABLE對日期、時間字段自動使用日期選擇器,禁止了鍵盤錄入。雖然DTABLE不允許通過鍵盤輸入日期字符,但是在提交時仍然會檢測該字段的日期是否合法。

4)DTABLE對數(shù)值、money字段自動使用計算器錄入,通過雙擊文本控件打開計算器,同時允許鍵盤錄入。提交時將檢驗輸入的字符是否為合法的數(shù)字。需要注意的是:客戶端數(shù)值驗證只允許2位小數(shù)的數(shù)值,大于2位小數(shù)的數(shù)值被認為非法。

5)DTABLE為記錄鏈接圖片地址和鏈接圖片文件的字段提供文件立即上傳功能,并能夠?qū)⑽募、文件路徑保存到相關(guān)的字段;甚至還可以生成縮略圖;不限制改類字段的數(shù)量。
例如:員工表的第5列記錄了員工的學歷證明圖片,第6列記錄了員工提供的培訓證書圖片,我們則可以通過定義屬性:Dtable.AE_Upfiles_No=” 5 6 ”;
這個屬性告訴DTABLE,第5、6列為文件上傳列。在進入記錄添加界面時,第5、6列位置自動顯示文件控件,并能在提交時自動上傳圖片。
相關(guān)屬性:
AE_Upfile_AutoReName:上傳的文件是否自動重新命名。默認為true,即:允許自動重命名
AE_UpFilesFd:定義上傳的文件需要保存的路徑,請指定一個相對路徑。例如:./images或../images/abcde
需要確認的是:你的站點必須要存在該文件夾。
AE_Miniature_Fd:定義縮略圖存放的路徑。如果定義了該屬性,DTABLE就認為你所有的Dtable.AE_Upfiles_No所定義的文件上傳字段都需要生成縮略圖。
AE_Miniature_width:生成縮略圖的最大寬度,同時請指定縮略圖的最大高度。屬性類別為Integer
AE_Miniature_height:生成縮略圖的最大高度,同時請指定縮略圖的最大寬度。屬性類型為Integer

6)DTABLE可以直接上傳文件到內(nèi)置的二進制圖像字段,且沒有數(shù)量限制。