在这个试一试练习中将修改上一个试一试练习中的示例在DetailsView控件中只显示一场比赛而不是以层叠的方式显示所有比赛所显示的比赛由查询字符串中的比赛标识符(FixtureID)决定
()按如下方式创建FixturesStackedaspx页面的一个副本在Solution Explorer中选中FixturesStackedaspx页面右击并选择Copy右击站点的根目录并选择Paste在文件列表中找到Copy of FixturesStackedaspx将其重命名为FixturesOneaspx
()选择DetailsView控件并禁止分页功能
()选择SqlDataSource控件打开它的智能任务面板单击Configure Data Source
()单击Next以保持当前的连接转入Select Statement的配置不需要修改源表或字段单击WHERE按钮以打开Add WHERE Clause对话框
()从Column下拉列表中选择FixturelD
()接受等于操作符并将Source设置为QueryString在Parameter properties面板中将QueryString字段设置为FixID(输入该字段名)将其默认值设置为单击Add 然后单击OK单击Next并测试注意在测试开始之前VWD允许您手动输入将要放入查询字符串中的值测试默认值然后测试其他不同的值单击Finish继续
()VWD记录数据源提供给DetailsView控件的数据将发生变化这使得您有机会重新创建数据绑定控件以使其和数据源控件的新设置保持同步同意更新您还可以在任何时候通过单击智能任务面板中的Refresh Schema执行这种同步最后的源代码如下所示
<%@ Page Language=VB MasterPageFile=~/sitemaster AutoEventWireup=false CodeFile=FixturesOneaspxvb Inherits=Fixtures_Stacked title=Untitled Page %>
<asp:Content ID=Content ContentPlaceHolderID=mainContent Runat=Server>
<asp:DetailsView ID=DetailsView runat=server
AutoGenerateRows=False
DataKeyNames=FixtureID
DataSourceID=SqlDataSource
Height=px Width=px>
<PagerSettings
Mode=NumericFirstLast
FirstPageText=First Game of the Season
LastPageText=Last Game of the Season/>
</asp:DetailsView>
<asp:SqlDataSource ID=SqlDataSource runat=server
ConnectionString=<%$ ConnectionStrings:WroxUnitedConnectionString %>
SelectCommand=SELECT * FROM [Fixtures] WHERE ([FixtureID] = @FixtureID)>
<SelectParameters>
<asp:QueryStringParameter DefaultValue=
Name=FixtureID
QueryStringField=FixID
Type=Int />
</SelectParameters>
</asp:SqlDataSource>
</asp:Content>
[] [] []