zoukankan      html  css  js  c++  java
  • 为AspxGridView绑定嵌套数据

    为AspxGridView绑定嵌套数据
    创建时间:2011年11月07日 16:46  阅读次数:(4619)
    分享到:4
    在AspxGridView中允许绑定嵌套数据。也就是一条数据允许再绑定该数据的下级数据。
    举个很简单的例子,我们用AspxGridView来显示中国所有省份,然后我们可以为每行数据(每个省)再绑定一个下级数据,也就是每个省对应的所有市的信息,以此类推,我们还可以为每个市再绑定所有县的信息,层层级推。具体展示在页面上就是AspxGridView上的每条数据前面都有一个+号,展开+号,就可以看到下级数据了。

    那么应该怎么来绑定嵌套数据呢?

    首先要通过设置父AspxGridView的ShowDetailRow=true来开启嵌套。
    <SettingsDetail ShowDetailRow="true" / >

    子AspxGridView定义在父AspxGridView的<Templates ><DetailRow >标签中。

    例:Asp.Net代码
    <dxwgv:ASPxGridView ID="MasterGrid" runat="server" KeyFieldName="TaskCode" ClientInstanceName="mastergrid" DataSourceID="SqlDataSource1"  >
    <SettingsDetail ShowDetailRow="true" / >
    <Columns >
        <dxwgv:GridViewDataColumn Caption="任务编号" FieldName="TaskCode" / >
        <dxwgv:GridViewDataColumn Caption="任务名称" FieldName="TaskName" / >
        <dxwgv:GridViewDataColumn Caption="任务类型" FieldName="TaskType" / >
        <dxwgv:GridViewDataColumn Caption="计划工时" FieldName="PlanHours" / >
        <dxwgv:GridViewDataColumn Caption="计划开始时间" FieldName="PlanBeginDate" / >
        <dxwgv:GridViewDataColumn Caption="计划结束时间" FieldName="PlanEndDate" / >
        <dxwgv:GridViewDataColumn Caption="备注" FieldName="Remark" / >
    </Columns >
    <Templates >
        <DetailRow >
            <dxwgv:ASPxGridView ID="DetailGrid" runat="server" KeyFieldName="ID" ClientInstanceName="detailgrid" DataSourceID="SqlDataSource2"
             OnBeforePerformDataSelect="DetailGrid_BeforePerformDataSelect" >
                <Columns >
                    <dxwgv:GridViewDataColumn Caption="ID" FieldName="ID" / >
                    <dxwgv:GridViewDataColumn Caption="任务编号" FieldName="TaskCode" Visible="false" / >
                    <dxwgv:GridViewDataColumn Caption="子任务名称" FieldName="ChildTaskName" / >
                    <dxwgv:GridViewDataColumn Caption="执行人" FieldName="ExecuteUser" / >
                    <dxwgv:GridViewDataColumn Caption="计划工时" FieldName="PlanHours" / >
                    <dxwgv:GridViewDataColumn Caption="计划开始时间" FieldName="PlanBeginDate" / >
                    <dxwgv:GridViewDataColumn Caption="计划结束时间" FieldName="PlanEndDate" / >
                </Columns >
                <SettingsDetail IsDetailGrid="true" / >
            </dxwgv:ASPxGridView >
        </DetailRow >
    </Templates >
    </dxwgv:ASPxGridView >

    <asp:SqlDataSource
      id="SqlDataSource1"
      runat="server"           
      DataSourceMode="DataSet"
      ConnectionString="数据库连接字符"
      SelectCommand="查询主表数据的SQL语句" >          
    </asp:SqlDataSource >

    <asp:SqlDataSource
      id="SqlDataSource2"
      runat="server"           
      DataSourceMode="DataSet"
      ConnectionString="数据库连接字符"
      SelectCommand="查询从表数据的SQL语句" >
      <SelectParameters >
        <asp:SessionParameter Name="TaskCode" SessionField="TaskCode" / >
      </SelectParameters >          
    </asp:SqlDataSource >


    C#代码:
    //子AspxGridView数据绑定
    protected void DetailGrid_BeforePerformDataSelect(object sender, EventArgs e)
    {
        Session["TaskCode"] = (sender as ASPxGridView).GetMasterRowKeyValue();
    }


    注意C#代码中的DetailGrid_BeforePerformDataSelect方法,该方法是在我们点+号展开数据时执行,GetMasterRowKeyValue()是获取主表中的主键值。因为我们在SqlDataSource2设置了SessionParameter,所以我们在DetailGrid_BeforePerformDataSelect要为SessionParameter赋值。
    来源:.net学习网
    说明:所有来源为 .net学习网 的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
    【编辑:Wyf】
     
  • 相关阅读:
    LeetCode——Generate Parentheses
    LeetCode——Best Time to Buy and Sell Stock IV
    LeetCode——Best Time to Buy and Sell Stock III
    LeetCode——Best Time to Buy and Sell Stock
    LeetCode——Find Minimum in Rotated Sorted Array
    Mahout实现基于用户的协同过滤算法
    使用Java对文件进行解压缩
    LeetCode——Convert Sorted Array to Binary Search Tree
    LeetCode——Missing Number
    LeetCode——Integer to Roman
  • 原文地址:https://www.cnblogs.com/ydfq-home/p/5017542.html
Copyright © 2011-2022 走看看