首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

* 10.7  建立主要与详细窗体

GridView和DetailsView 控件可以结合起来,建立主要与详细窗体(Master/Detail)。在主要窗体的 GridView 控件显示记录列表,包含选取超级链接列,单击,就可以在 DetailsView控件中显示单条记录的详细数据,如图10-19所示。

图10-19  Ch10-7.aspx运行结果

上图的左边是 GridView 控件,右边是 DetailsView 控件,单击指定记录行的“选取”超级链接文字,就可以在右边显示单条记录的详细数据。

1. 主要窗体的GridView控件

在 ASP.NET 程序中有 GridView 和 DetailsView 两个控件。主要窗体的数据源和 DataGrid 控件如下所示。

<asp:AccessDataSource Id="MasterSource" Runat="server"

     DataFile="~/Products.mdb"

     SelectCommand="SELECT * FROM Products"/>

<asp:GridView Id="master" Runat="server"

     DataSourceID="MasterSource" BorderColor="black"

     HeaderStyle-BackColor="#CC99FF"

     AutoGenerateColumns="False"

     AutoGenerateSelectButton="True"

     DataKeyNames="ProductNo"

     SelectedIndex="0">

<Columns>

 <asp:BoundField HeaderText="书号"

                 DataField="ProductNo"/>

</Columns>

</asp:GridView>

上述 GridView 控件的数据源控件是 MasterSource,AutoGenerateSelectButton 属性为 True,可以自动创建“选取”超级链接字段,DataKeyNames 属性指定主键是 ProductNo,SelectedIndex 属性设置预先选取的数据行,0 就是第 1 条记录。

2. 详细窗体的DetailsView控件

详细窗体 DetailsView 控件和其数据源控件,如下所示。

<asp:AccessDataSource Id="DetailSource" Runat="server"

     DataFile="~/Products.mdb"

     SelectCommand="SELECT * FROM Products

                    WHERE ProductNo=@ProductNo">

     <SelectParameters>

        <asp:ControlParameter Name="ProductNo"

         ControlID="master" PropertyName="SelectedValue"/>

     </SelectParameters>

</asp:AccessDataSource>

<asp:DetailsView Id="detail" Runat="server"

     DataSourceID="DetailSource" Width="350px"

     ………>

………

</asp:DetailsView>

在上述数据源控件SelectCommand属性的SQL查询命令中,添加WHERE子句的过滤条件,因为详细窗体只显示一条记录,参数@ProductNo值是由 <SelectParameter>标记来指定如何获取参数值。

在<SelectParameter>标记中可以使用ControlParameter控件来定义SQL命令参数,此例的参数名称是 ProductNo。ControlID属性指出参数值的来源控件,即主要窗体。PropertyName 属性设置使用来源控件的哪一个属性取代参数值。 GridView控件的 SelectedValue 属性可以获取目前选取记录的主键值。

完整ASP.NET程序范例是Ch10-7.aspx。Ch10-7Template.aspx是将 AutoGenerate SelectButton属性设为 False,使用TemplateField控件自行建立选取字段,如下所示。

<asp:TemplateField HeaderText="书号">

  <ItemTemplate>

    <asp:LinkButton Runat="server"

        Text='<%# Eval("ProductNo")%>'

        CommandName="Select"/>

  </ItemTemplate>

</asp:TemplateField>

上述选取字段是使用LinkButton控件,以书号为标题名称,CommandName属性值Select表示选取记录。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论