8.6 数据绑定控件(DetailsView)

  DetailsView控件与FormView在很多情况下非常类似,DetailsView控件通常情况下也只能够显示一行的数据,同FormView,DetailsView控件支持对数据源控件中的数据进行插入、删除和更新。但是DetailsView控件与FormView控件不同的是,DetailsView控件不支持ItemTemplate模板,这也就是说,DetailsView控件是以一种表格的形式所呈现的。
  相比之下,DetailsView控件能够支持Ajax,因为FormView控件完全由模板驱动,但是FormView控件对验证控件的支持较好。而DetailsView控件可以通过选择是否包括更新,删除等操作,而无需手动的添加相应的事件,比FormView控件更加方便,如图8-47和图8-48所示。
配置DetailsView任务
图8-47 配置DetailsView任务
减少任务配置
图8-48 减少任务配置
  当选择了【启用分页】选项后DetailsView控件就能够自动进行分页。开发人员还可以配置PagerSettings属性允许自定义DetailsView控件生成分页用户界面的外观,它将呈现向前和向后导航的方向控件,PagerSettings属性的常用模式有:
1)NextPrevious:以前一个,下一个形式显示。
2)NextPreviousFirstLast:以前一个,下一个,最前一个,最后一个形式显示。
3)Numeric:以数字形式显示。
4)NumericFirstLast::以数字,最前一个,最后一个形式显示。
  当完成配置DetailsView控件后,DetailsView控件无需通过外部控件来转换DetailsView控件的编辑模式,DetailsView控件自动会显示更新、插入、删除等按钮来更改编辑模式,如图8-49所示。
DetailsView控件
图8-49 DetailsView控件
  编辑完成后,DetailsView控件生成的HTML代码如下所示。
+展开
-HTML
    <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" 
            AutoGenerateRows="False" BackColor="White" BorderColor="#999999" 
            BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="ID" 
            DataSourceID="SqlDataSource1" GridLines="Vertical" Height="50px" Width="100%">

        <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
        <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <Fields>
                    <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="ID" />

                    <asp:BoundField DataField="TITLE" HeaderText="TITLE" SortExpression="TITLE" />
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
                    ShowInsertButton="True" />

                </Fields>
            <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="#DCDCDC" />
    </asp:DetailsView>

  如上一节内容所讲,在数据源控件的配置中配置SQL语句,需要选择高级,勾选【生成update、insert、delete语句】复选框以支持自动生成更新、删除等语句的生成。当勾选了【生成update、insert、delete语句】复选框后,数据源控件代码如下所示。
+展开
-HTML
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:mytableConnectionString %>" 
            DeleteCommand="DELETE FROM [mynews] WHERE [ID] = @ID" 
            InsertCommand="INSERT INTO [mynews] ([TITLE]) VALUES (@TITLE)" 
            SelectCommand="SELECT * FROM [mynews]" 
            UpdateCommand="UPDATE [mynews] SET [TITLE] = @TITLE WHERE [ID] = @ID">

        <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
                <asp:Parameter Name="TITLE" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
        </UpdateParameters>
                <InsertParameters>
            <asp:Parameter Name="TITLE" Type="String" />
        </InsertParameters>
    </asp:SqlDataSource>

  从上述代码可以看出,数据源控件自动生成了相应的SQL语句,如图8-50所示。当执行更新、删除等操作时,则会默认执行该语句。运行结果如图8-51所示。
更改相应字段的值
图8-50 更改相应字段的值
更改后的控件呈现
图8-51 更改后的控件呈现

加支付宝好友偷能量挖...


评论(0)网络
阅读(109)喜欢(0)Asp.Net/C#/WCF