圖像的維護
把圖像插入到數據庫的表中僅僅是數據庫管理的一個方面。另外,用戶還需要刪除或者編輯數據,甚至定位一幅圖像。所以,我們要用ASP.NET來構造一個界面,使其允許用戶編輯圖像的數據,刪除圖像,添加新的圖像,以及用用戶輸入的搜索字符串來定位一幅圖像。這個界面將利用一個DataGrid來顯示單條的數據庫記錄。DataGrid的每一行將包括以下內容:
ID:在數據庫的表中,每幅圖像都被賦予一個獨一無二的整數值。
Name:當被插入時每圖片都被賦予一個名稱。它是從上傳控件中獲取的,所以它是包含了圖像被插入之前所在路徑的文件名。
Type:與圖像所關聯的圖像類型。
Size:用字節計算的圖像的大小。
Description:用戶所輸入的圖像的描述信息。
Image:實際的圖像在DataGrid以一個比較小的比例(取決于圖像本身)來顯示。這可以被認為是一個圖像索引(寬50像素、高40像素)。
Buttons:“編輯”與“刪除”按鈕對于每條記錄都是可用的。當編輯按鈕被點中之后,“更新”與“取消”按鈕將出現在“編輯”按鈕的位置?!案隆卑粹o使本次所做的變更操作永久化并退出“編輯”模式?!叭∠卑粹o忽略掉所有的變更操作并退出“編輯”模式。
除此之外,在DataGrid上面的Add New Image按鈕允許用戶向數據庫中添加一幅新的圖像。另外,搜索按鈕和一個文本框允許用戶搜索數據庫。當點擊搜索按鈕時,將使用文本框中輸入的搜索字符串來匹配紀錄的名稱或者描述信息。
列表A包括了這一頁所講內容的VB.NET代碼。列表B包括了與之等價的C#代碼。下面有一些關于這些代碼的注意事項:
DataGrid的OnEditCommand屬性將它的Edit命令(EditCommandColumn)與指定的子程序聯系起來。這與用OnCancelCommand來取消一次編輯操作,用OnUpdateCommand來保存編輯的改變以及用OnDeleteCommand來刪除單獨的一行是相同的。
asp:BoundColumn元素將DataGrid中的列和與之對應的數據集合中的具體列聯系起來。DataField屬性指定了與之對應的列。
ASP.NET的Button控件使得搜索和添加一個新數據項更容易??丶腛nClick屬性允許你為它指定一個子程序,當按鈕被點擊的時候子程序將被執行。
DoSearch子程序搜索數據庫中在Description或者Name字段里含有搜索字符串的所有記錄。匹配的行將被顯示在DataGrid中。ClearSearch方法將重新載入包含所有數據的DataGrid并清空搜索文本框。
BindDataSet方法處理將數據導入到DataGrid中的實際操作,并且接受一個搜索字符串。如果傳入的搜索字符串為孔,T-SQL語句將被設定為從數據庫表中導入所有行。否則,搜索字符串將被用來創建T-SQL語句以定位所有匹配的記錄并將它們顯示在DataGrid中。
你可能注意到了Add Image按鈕將用戶重定向到一個名為AddImage.aspx的頁面。
這是上周的文章中將圖像加入到數據庫的那個頁面。而且,DataGrid中的圖像一列使用了一個名為DisplayImage.aspx的頁面。簡單說來,這個頁面從數據庫的表中讀入一幅圖像并將其顯示出來。它將圖像的id作為querystring id變量來定位圖像在表中的位置。列表C包括了這個頁面的VB.NET代碼。
除此之外,貫穿整個應用程序,這個頁面都可以被重用以使用數據庫中存儲的圖像:
〈asp:Image Width="50" Height="40"?ImageUrl= 〈%# ImageLink(DataBinder.Eval(Container.
DataItem, "ID")) %〉 Runat=server /〉
你還需要包含ImageLink子程序。
Function ImageLink(strArgument) as String
Return ("displayImageVB.aspx?id=" & strArgument)
End Function
不足之處
和大部分
原文轉自:http://www.anti-gravitydesign.com