zoukankan      html  css  js  c++  java
  • GridView多行嵌套(Cell)

    前台

    代码
     1 <%@ Page Language="C#" AutoEventWireup="true" Debug="true" CodeFile="GridviewNested.aspx.cs"
     2     Inherits="多层嵌套_GridviewNested" %>
     3 
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <title>Gridview Nested</title>
     8     <link href="~/CSS/Gridview.css" rel="stylesheet" type="text/css" />
     9 </head>
    10 <body>
    11     <form id="form1" runat="server">
    12         <div id="container">
    13             <asp:GridView ID="ParentGridView" BorderColor="Black" OnRowDataBound="ParentGridView_RowDataBound"
    14                 runat="server" AutoGenerateColumns="False" Font-Size="12px" Width="530px" AllowSorting="True"
    15                 OnRowEditing="ParentGridView_RowEditing" OnRowCancelingEdit="ParentGridView_RowCancelingEdit">
    16                 <Columns>
    17                     <asp:BoundField DataField="CategoryID" HeaderText="编号" ReadOnly="True" />
    18                     <asp:BoundField DataField="CategoryName" HeaderText="类别" ReadOnly="True" />
    19                     <asp:TemplateField HeaderText="查看详情">
    20                         <ItemTemplate>
    21                             <asp:Button ID="ViewChild_Button" runat="server" Text="Details" CommandName="Edit" />
    22                         </ItemTemplate>
    23                         <EditItemTemplate>
    24                             <asp:Button ID="CancelChild_Button" runat="server" Text="Cancel" CommandName="Cancel" />
    25                             <asp:GridView ID="ChildGridView" runat="server" AllowPaging="True" PageSize="3" AutoGenerateColumns="False"
    26                                 OnRowEditing="ChildGridView_OnRowEditing" BorderColor="Black" OnRowDataBound="ChildGridView_RowDataBound"
    27                                 DataKeyNames="ProductID" DataSourceID="AccessDataSource1" Width="241px">
    28                                 <Columns>
    29                                     <asp:BoundField DataField="ProductName" HeaderText="名称" ReadOnly="True" SortExpression="ProductName" />
    30                                     <asp:TemplateField HeaderText="查看详情">
    31                                         <ItemTemplate>
    32                                             <asp:Button ID="ViewGrantChild_Button" runat="server" Text="Details" CommandName="Edit" />
    33                                         </ItemTemplate>
    34                                         <EditItemTemplate>
    35                                             <asp:Button ID="CancelGrantChild_Button" runat="server" Text="Cancel" CommandName="Cancel" />
    36                                             <asp:GridView ID="GrantChildGridView" runat="server" AllowPaging="True" PageSize="3"
    37                                                 AutoGenerateColumns="False" BorderColor="Black" OnRowDataBound="ChildGridView_RowDataBound"
    38                                                 DataKeyNames="ID" Width="331px" DataSourceID="AccessDataSource1">
    39                                                 <Columns>
    40                                                     <asp:BoundField DataField="OrderID" HeaderText="订单号" ReadOnly="true" SortExpression="OrderID"
    41                                                         ItemStyle-Width="100px" />
    42                                                     <asp:BoundField DataField="OrderMoney" HeaderText="金额" ReadOnly="true" SortExpression="OrderMoney"
    43                                                         ItemStyle-Width="80px" />
    44                                                     <asp:BoundField DataField="OrderState" HeaderText="状态" ReadOnly="true" SortExpression="OrderState"
    45                                                         ItemStyle-Width="80px" />
    46                                                 </Columns>
    47                                                 <HeaderStyle BackColor="Azure" Font-Size="12px" HorizontalAlign="Center" />
    48                                                 <RowStyle HorizontalAlign="Center" />
    49                                                 <PagerStyle HorizontalAlign="Center" />
    50                                             </asp:GridView>
    51                                             <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Example.mdb"
    52                                                 SelectCommand="SELECT * FROM [Orders] WHERE ([ProductID] = ?)">
    53                                                 <SelectParameters>
    54                                                     <asp:SessionParameter Name="ProductID" SessionField="sProductID" Type="Int32" />
    55                                                 </SelectParameters>
    56                                             </asp:AccessDataSource>
    57                                         </EditItemTemplate>
    58                                     </asp:TemplateField>
    59                                 </Columns>
    60                                 <HeaderStyle BackColor="Azure" Font-Size="12px" HorizontalAlign="Center" />
    61                                 <RowStyle HorizontalAlign="Center" />
    62                                 <PagerStyle HorizontalAlign="Center" />
    63                             </asp:GridView>
    64                             <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Example.mdb"
    65                                 SelectCommand="SELECT * FROM [Products] WHERE ([CategoryID] = ?)">
    66                                 <SelectParameters>
    67                                     <asp:SessionParameter Name="CategoryID" SessionField="sCategoryID" Type="String" />
    68                                 </SelectParameters>
    69                             </asp:AccessDataSource>
    70                         </EditItemTemplate>
    71                     </asp:TemplateField>
    72                 </Columns>
    73                 <HeaderStyle BackColor="Azure" Font-Size="12px" HorizontalAlign="Center" />
    74                 <RowStyle HorizontalAlign="Center" />
    75                 <PagerStyle HorizontalAlign="Center" />
    76             </asp:GridView>
    77         </div>
    78     </form>
    79 </body>
    80 </html>
    81 

    后台

    代码
     1 public partial class 多层嵌套_GridviewNested : System.Web.UI.Page
     2 {
     3     protected void Page_Load(object sender, EventArgs e)
     4     {
     5         if (!IsPostBack)
     6         {
     7             bindParent();
     8         }
     9     }
    10     /// <summary>
    11     /// 数据绑定
    12     /// </summary>
    13     public void bindParent()
    14     {
    15         string sqlStr = "select * from Categories";
    16         DataSet myds = Common.dataSet(sqlStr);
    17         ParentGridView.DataSource = myds;
    18         ParentGridView.DataKeyNames = new string[] { "CategoryID" };
    19         ParentGridView.DataBind();
    20     }
    21 
    22     /// <summary>
    23     /// 在 GridView 控件中的某个行被绑定到一个数据记录时发生。此事件通常用于在某个行被绑定到数据时修改该行的内容。
    24     /// </summary>
    25     /// <param name="sender"></param>
    26     /// <param name="e"></param>
    27     protected void ParentGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    28     {
    29         foreach (TableCell tc in e.Row.Cells)
    30         {
    31             tc.Attributes["style"= "border-color:Black";
    32         }
    33         if (e.Row.RowIndex != -1)
    34         {
    35             int id = ParentGridView.PageIndex * ParentGridView.PageSize + e.Row.RowIndex + 1;
    36             e.Row.Cells[0].Text = id.ToString();
    37         }
    38     }
    39     protected void ParentGridView_RowEditing(object sender, GridViewEditEventArgs e)
    40     {
    41         int parent_index = e.NewEditIndex;
    42         ParentGridView.EditIndex = parent_index;
    43         bindParent();
    44         Session["sCategoryID"= Convert.ToInt32(ParentGridView.DataKeys[parent_index].Value);
    45         Session["sParentGridViewIndex"= parent_index;
    46     }
    47     protected void ChildGridView_OnRowEditing(object sender, GridViewEditEventArgs e)
    48     {
    49         int parent_index = (int)Session["sParentGridViewIndex"];
    50         GridViewRow parent_row = ParentGridView.Rows[parent_index];
    51         GridView ChildGridView = (GridView)parent_row.FindControl("ChildGridView");
    52         int child_index = e.NewEditIndex;
    53         ChildGridView.EditIndex = child_index;
    54         Session["sProductID"= Convert.ToInt32(ChildGridView.DataKeys[child_index].Value);
    55     }
    56     protected void ChildGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    57     {
    58         foreach (TableCell tc in e.Row.Cells)
    59         {
    60             tc.Attributes["style"= "border-color:Black";
    61         }
    62 
    63     }
    64     protected void GrandChildGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    65     {
    66         foreach (TableCell tc in e.Row.Cells)
    67         {
    68             tc.Attributes["style"= "border-color:Black";
    69         }
    70     }
    71     protected void ParentGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    72     {
    73         ParentGridView.EditIndex = -1;
    74         bindParent();
    75     }
    76 }
    77 

  • 相关阅读:
    【转】sublime text 2中Emmet插件8个常用的技巧
    程序猿崛起3——这一次,我用行动说话
    《Effective Java》学习笔记——积累和激励
    程序猿崛起2——互联网时代下的新潮流和新活法
    【非技术】做好属于自己的作品,然后让世界所有人都记住你
    【非技术】实现理想的第一步就是做自己
    【原创】程序猿崛起
    人生苦短,我用python——当我在玩python的时候我玩些什么
    一个新人如何学习在大型系统中添加新功能和Debug
    一个应届毕业生入职30天后的工作总结——作息
  • 原文地址:https://www.cnblogs.com/TNTZWC/p/1906844.html
Copyright © 2011-2022 走看看