在下面的試一試練習中您將實踐這項技術以激活GridView和DetailsView控件的更新功能它們將修改比賽的數據這裡使用第章創建的Fixturesaspx頁面該頁面帶有一個GridView控件及作為其子控件的DetailsView控件
()在VWD中打開位於C:\BegASPNET\Chapters\Begin\Chapter的Web站點並在Design View下打開Fixturesaspx頁面(使用真正的Fixturesaspx頁面不要使用在第章中作為測試頁面的FixturesOne和FixturesStacked頁面)
()選中GridView 控件並打開它的Common Tasks面板勾選Enable Editing復選框如果沒有勾選Enable Selection則勾選該復選框
()選擇SqlDataSource控件(DetailsView控件的數據源控件)打開它的Common Tasks面板單擊Configure Data Source確保為連接選擇WroxUnitedConnectionString在Configure Select Statement對話框中選擇從表或視圖中指定列的選項選擇Fixtures表並選擇單獨的列(不是*)
()單擊WHERE按鈕打開Add WHERE Clause窗口在Column中選擇FixtureID在Source中選擇Control在Parameter properties中選擇GridView 作為Control ID並單擊Add按鈕將參數添加到窗口底部的WHERE子句中單擊OK關閉此窗口
()回到主向導窗口單擊Advanced按鈕打開這個窗口中的兩個選項單擊OK關閉該窗口然後單擊Next finish關閉配置向導當DetailsView仍然處於選中狀態時回到Properties窗格並在Behavior部分將AutoGenerateRows屬性設置為true 與以往一樣如果提示要更新數據鍵則接受
()選中DetailsView數據綁定控件並打開它的Common Tasks面板勾選Enable Editing復選框之後關閉該面板通過這些簡單的修改您已激活了GridView和DetailsView控件的編輯功能
()現在進行最後一點修改VWD在為UpdateCommand創建WHERE子句時顯得過於繁瑣默認情況下VWD將更新數據之前將檢查所有字段這裡您可以肯定只要與FixtureID匹配就可以得到正確的記錄所以在Source View中修改SqlDataSource(一定要選擇SqIDataSource)的UpdateCommand刪除下面代碼中的陰影部分可能需要向下滾動才能看到UpdateCommand您的代碼的換行方式可能與下面顯示的代碼有所不同為了清楚起見我們修改了代碼的排列確保該命令仍以符號>結束
UpdateCommand=UPDATE [Fixtures]
SET
[FixtureDate] = @FixtureDate
[FixtureType]=@FixtureType
[GoalsFor]=@GoalsFor
[GoalsAgainst]=@GoalsAgainst
[Notes]=@Notes
[Opponents] = @Opponents
WHERE
[FixtureID] = @Original_FixtureID
AND [FixtureDate] = @Original_FixtureDate
AND [FixtureType]=@Original_FixtureType
AND [GoalsFor]=@Original_GoalsFor
AND [GoalsAgainst]=@Original_GoalsAgainst
AND [Notes]=@Original_Notes
AND [Opponents] = @Original_Opponents
[] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/14649.html