ASP.NET入门教程 7.6 多个数据控件一起工作[1]
前一小节描述了一种使用参数的原始方法──在URL 之后输入参数 开通的方法是使用一个数据绑定控件为其他数据绑定控件创建参数 这在术语中称为ControlParameters 本节演示两种非常普遍的情况 在第一种情况中 DropDownList控件决定了在GridView控件中显示哪条(些)记录 在第二种情况中 对GridView控件中的记录进行选择以使页面在DetailsView控件中显示该记录的更多字段 这些情况称为主一从场景 在主数据绑定控件中进行选择将为从数据绑定控件的数据源控件的WHERE子句设立一个值 绝大多数情况下 主从数据绑定控件分别使用单独的数据源控件
在主控件中 只需使用一个特定的属性 如果主控件是ListBox或DropDownI ist 必须将AutoPostBack属性设置为True以便在主控件中做出选择之后 ASP NET 将触发页面进行刷新 从而使子控件显示变化后的记录 记住ListBox和DropDownList控件有两个字段参数 第一个是要显示的字段(DataTextField属性) 而第二个是要在页面的代码中使用的字段(DataValueField属性) 例如 这允许您在列表框中向用户显示球员的姓 但在SQL语句中则使用更有用的值PlayerID 如果主控件是GridView控件 可以打开它的智能任务面板 勾选Enable Selection复选框以使VWD为控件中的每条记录创建一个新列 该列带有Select按钮 单击该按钮 ASP NET将对选中的记录做出反应 如您稍后所见
在子控件中 必须在该控件的数据源控件的WHERE子句中设置一个参数 在前一小节中 您使用Configure Data Source Control向导的Add WHERE Clause对话框将参数设置在查询字符串的一个字段中 可以再次使用该向导 但这次在Add WHERE Clause对话框中将列设置为等于某个控件(而不是查询字符串)中的值 该向导将显示一个控件列表 可以从中进行选择 在选择的控件中决定使用哪个值 通常是SelectionValue
在下面的 试一试 练习中您将练习两个控件组合 在第一个组合中 使用DetaiisView控件显示在GridView控件中选择的数据的其他字段 在第二个组合中 使用DropDownList控件在GridView控件内仅显示特定的记录
( )现在创建最终版本的Fixtures aspx页面 将已存在的Fixtures aspx文件移动到一个自己创建的文件夹中并将其命名为OIdPages 由于创建页面的步骤非常迅速和简单(而且是一次很好的复习) 您将从头开始 使用Master页面创建一个新的Web Form并将其命名为Fixtures aspx 将其VB代码保存在一个单独的文件中 切换到Design View
( )打开Database Explorer 导航到WroxUnited mdf→Tables→Fixtures 仅选择FixturelD FixtureDate和opponents(使用Ctrl+单击) 个字段 将它们拖放到页面上 VWD将稍微停顿然后创建一个GridView控件 并自动打开它的智能任务面板 勾选图 中所示的Enable Selection复选框 注意VWD己经添加了Select按钮列
( )从工具箱中将一个DetailsView控件拖放到内容区域的底部 选择New的数据源 将数据源控件的ID设置为SqlDataSource 并继续使用您在本章一直使用的WroxUnited连接字符串 指定从Fixtures表中读取数据并选择所有字段
( )单击WHERE按钮并选择FixtureID列 将操作符设置为等号并从Source下拉列表中选择Control
( )在参数属性面板中 将ControlID设置为GridView 默认值设置为 不要忘记单击Add按钮 单击OK Next 然后单击Test Query按钮(值 正确) 最后单击Finish按钮
( )将DetailsView控件的宽度扩大一点 保存该页面并在浏览器中查看 在GridView控件中选择不同的记录并注意DetailsView控件中显示的注释
( )现在改善Gallery页面 使其从单页显示变为分页显示 在Solution Explorer中 在根目录下创建Gallery All aspx页面的一个副本 将该副本的名称修改为Gallery aspx
( )打开Gallery aspx 在页面顶部添加一些换行符 然后将一个DropDownList控件拖放到页面顶部 将数据源配置为类型Database的新源 并命名为SqlDataSource 使用WroxUnited数据库 从Fixtures表中选择FixturelD FixtureDate和Opponents
单击ORDER BY在FixtureDate列上以升序排列 单击OK Next 然后测试查询并结束 您将回到Choose a Data Source窗口 把DataTextField设置为Opponents(暂时这样) 同时把DataValueField设置为FixtureID 在仍然选中DropDownList控件的情况下 从智能任务面板中打开Enable AutoPostBack开关
ASP NET 入门教程完整版
lishixinzhi/Article/program/net/201311/15201