为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】

上一节下一节

转载于:https://www.cnblogs.com/ydfq-home/p/5017542.html

为AspxGridView绑定嵌套数据相关推荐

  1. 让jquery easyui datagrid列支持绑定嵌套对象

    嵌套对象是指返回的json数据,是对象的某个属性自带有属性.而我们恰恰又需要这个属性,默认情况下easyui的datagrid是不支持绑定嵌套对象的.比如:datagrid的field属性只能为fie ...

  2. Object.defineProperty与双向绑定、数据监听

    一.对象赋值的两种方式 一是"="赋值,一是Object.defineProperty方法,而当下流行框架中广泛应用的双向绑定和数据监听等,就是利用的第二种方式,关于此方法不多讲, ...

  3. Boost:bind绑定和数据成员以及高级用途的测试程序

    Boost:bind绑定和数据成员以及高级用途的测试程序 实现功能 C++实现代码 实现功能 bind绑定和数据成员以及高级用途的测试程序 C++实现代码 #include <boost/con ...

  4. Boost:bind绑定和数据成员的测试程序

    Boost:bind绑定和数据成员的测试程序 实现功能 C++实现代码 实现功能 bind绑定和数据成员的测试程序 C++实现代码 #include <boost/config.hpp> ...

  5. 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换...

    背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 原文:背水一战 Windows 10 ...

  6. Asp.net--DropDownList控件绑定数据库数据

    DropDownList控件绑定数据库数据:DB是公共类,reDt是公共类中的方法 放在Page_Load事件中 if (!IsPostBack){DB db = new DB();DataTable ...

  7. vue获取table一列数据_VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)...

    一.问题 用elementUi横着增加一行数据没毛病,可以操作 添加一列,这新增的这一列, 第一次去赋值的时候值是改了, 但没生效 点击下一行时 值就变过来 二.原因 横向添加 是复制上面的某一条数据 ...

  8. popup弹出html页面,Popup弹出框绑定添加数据事件(步奏详解)

    这次给大家带来Popup弹出框绑定添加数据事件(步奏详解),Popup弹出框绑定添加数据事件的注意事项有哪些,下面就是实战案例,一起来看一下. 逻辑 窗口P1中显示一组数据,并提供一个添加按钮 点击按 ...

  9. layui使用表格数据,json嵌套数据解决

    layui使用表格数据,json嵌套数据解决 layui使用数据表格 json数据输出 出现的问题 layui,返回的数据不符合规范,正确的成功状态码 (code) 应为:0 在数据嵌套时的使用 la ...

  10. 解决element 分页组件,搜索过后current-page 绑定的数据变了,但是页面当前页码并没有变的问题

    解决element 分页组件,搜索过后current-page 绑定的数据变了,但是页面当前页码并没有变的问题 参考文章: (1)解决element 分页组件,搜索过后current-page 绑定的 ...

最新文章

  1. node.js php模板,node.js中EJS 模板的使用教程
  2. C# readonly const
  3. 电脑勒索病毒之谜:用户如何能确保电脑安全
  4. Gym 101964 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2018)
  5. java.logging的重定向?
  6. boa php5.5 移植,BOA+PHP在Tiny6410上的移植
  7. asp.net中验证码的实现
  8. Elasticsearch单机安装
  9. iforums之UEditor上传图片提示【未知错误】
  10. Linux内核基础设施
  11. 毕设题目:Matlab车辆计数
  12. Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
  13. Python英文搜索引擎(模糊搜索)
  14. 初出茅庐——利用Python的Turtle库绘制玫瑰花
  15. 火星南极有水,会有生命吗?
  16. 逐梦电竞:雷神“光追”游戏电脑新年首发
  17. 【建议收藏】Android初级开发者怎样快速提高开发技能?这20个开源APP能帮到你
  18. 如何用 Java 对 PDF 文件进行电子签章
  19. 手把手教你如何批量修改视频尺寸
  20. 主流的音视频SDK调研

热门文章

  1. windows下编译Chrome浏览器
  2. Linux 内存管理之 SLUB分配器(5):slub初始化过程
  3. linux 卸载pppoe,列“State”不属于表 。
  4. linux 下的带宽、延时、吞吐率、PPS
  5. (转)DPDK内存管理05 -- rte_mbuf
  6. linux下交叉编译ffmpeg,并加入H264编码支持
  7. VC开发数据库基础之ADO篇
  8. numpy广播机制小结
  9. Java中的可变参数使用
  10. 【二进制】Special Numbers