Dreamwaver MX與ASP.NET(六)
來源:互聯網
上載者:User
asp.net
6.建立記錄修改頁面
相關介紹(注意:為了能顯示代碼,以下所有代碼都在“<”之後和“>”之前加了空格,不便之處請多原諒!):
對資料的添加,修改,刪除是對資料庫的三個基本操作。本節介紹修改記錄部分。
STEP 1 設計修改流程
一般來說,只需要對指定的記錄進行更新,所以需要建立搜尋網頁面進行查詢,並將查詢結果顯示在結果頁中,並讓使用者對其進行修改。最後通過提交操作完成更新任務。
首先,建立查詢頁面。在建立dataset的過程中,我們可以通過資料過濾器Filter選擇所需的資料。由於我們將會點擊DataList中的連結來到達此頁面,所以選擇URL Parameter並利用關鍵字CODE來篩選出所需的頁面。
[圖 6-1篩選資料]
為此,在網站中建立modify.aspx檔案,並添加DataSet如上圖。
Step2 建立細節頁面
為了產生連結,首先應建立導航頁面。可以對在第3節中建立的DataGrid頁面修改達到這樣的導航效果。DataGrid的樣式是修改的,資料項目同樣可以設定為顯示有連結的文字。同樣在DataList和Repeater中也可以實現同樣的功能,都是設定一個超級連結到細節頁面。
開啟原來的location2.aspx檔案,修改原來的DataList樣式。選擇DataListm單擊Edit Columns(如圖6-2)。在彈出的DataGrid樣式設計對話方塊(圖6-3)中,可以將Location_name的類型設定為Hyperlink。選中Location_name,單擊Change Column Type按鈕更改為Hyperlink。
[圖 6-2 Edit Columns..]
[圖 6-3 設定hyperlink]
對於Hyperlink設定如下圖,
[圖 6-4 設定連結關鍵字]
顯示的資料域Location_name,串連關鍵字為code,需要跳轉到的頁面就是modify.aspx頁面。點選連結後具體的網址連結將會為
http://yoursite/modify.aspx?CODE=所點擊的紀錄的code的值
而modify.aspx頁面也將會通過傳來的code的值從資料庫中查詢所需的紀錄。
為了在modify.aspx頁面中更新資料,就需要用到表單。這就需要將資料記錄和輸入框綁定。在Dreamweaver MX中綁定資料的方式和Dreamweaver UltraDev中類似。將版面設定如圖6-5。建立6個Text Field,1個hiddenField,1個submit按鈕,放到適當的位置。其中hiddernField用於儲存此記錄的CODE值。因為code值為關鍵字,所以不需改變。
[圖 6-5 modify.aspx頁面]
單擊Binding標籤,將具體資料項目拖到與之對應的text field。同時在Format中可以設定資料的顯示類型。而同樣可以將text field的所有屬性和資料來源綁定。選擇記錄的第一個下拉
[圖6-6 Binding] [圖 6-7 資料類型選擇] [圖6-8 綁定屬性]
列表,設定被資料來源綁定的text Field屬性。
STEP 3資料更新
至於資料更新可以點擊Application面板中的Server Behaviors中的”+”按鈕,選擇Update Record。
[圖 6-9 選擇Update Record]
[圖6-10 設定關聯]
在彈出的對話方塊中,需將輸入框和相對應更新的資料來源關聯起來,並設定資料類型。其中CODE應為關鍵字即Primary Key。類似於Insert Record的頁面,還要設定成功添加和添加失敗跳轉到的頁面。
現在可以預覽一下做好的頁面。輸入網址http://yoursite/location3.aspx,可以看到如圖6-11的頁面。
[圖6-11 location3.aspx頁面瀏覽]
Location_name的一項是可以點擊的,並將跳到細節頁面modify.aspx。
[圖6-12 更新頁面預覽]
通過modify.aspx頁面就可以修改現有資料,並可以通過表單提交事件來更新資料。
其更新的主要代碼如下:
< MM:Update
runat="server"
CommandText='< %# "UPDATE LOCATIONS SET CITY=?, STATE_COUNTRY=?, FAX=?, TELEPHONE=?, ADDRESS=? WHERE CODE=?" % >'
ConnectionString='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_location") % >'
DatabaseType='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_DATABASETYPE_location") % >'
Expression='< %# Request.Form("MM_update") = "form1" % >'
CreateDataSet="false"
SuccessURL='< %# "location3.aspx" % >'
Debug="true"
>
< Parameters >
< Parameter Name="@CITY" Value='< %# IIf((Request.Form("city") < > Nothing), Request.Form("city"), "") % >' Type="WChar" / >
< Parameter Name="@STATE_COUNTRY" Value='< %# IIf((Request.Form("state") < > Nothing), Request.Form("state"), "") % >' Type="WChar" / >
< Parameter Name="@FAX" Value='< %# IIf((Request.Form("fax") < > Nothing), Request.Form("fax"), "") % >' Type="WChar" / >
< Parameter Name="@TELEPHONE" Value='< %# IIf((Request.Form("tele") < > Nothing), Request.Form("tele"), "") % >' Type="WChar" / >
< Parameter Name="@ADDRESS" Value='< %# IIf((Request.Form("address") < > Nothing), Request.Form("address"), "") % >' Type="WChar" / >
< Parameter Name="@CODE" Value='< %# IIf((Request.Form("hiddenField") < > Nothing), Request.Form("hiddenField"), "") % >' Type="WChar" / >
< /Parameters >
< /MM:Update >
Dreamweaver MX是通過mm:update來表識更新的代碼的。其格式和MM:Insert類似。