在下面的试一试练习中您将实践这项技术以激活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
[] [] [] [] [] []