zoukankan      html  css  js  c++  java
  • Ext.net 显示CheckBox的TreeGrid

     在Ext.net Version 1.5(http://examples1.ext.net/)中,当需要展示具有层级关系而且具有多个属性的数据集合的时候,TreeGrid是一个不错的选择。但是这该版本中的TreeGrid并不像TreePanel一样提供了CheckBox在UI界面中,因此即使你在后台设置了TreeNode的Checked属性,仍然不会看到有CheckBox在树的节点中显示。但是我们需要这个功能,怎么办呢?查阅了很多资料,看到Ext.Net Forums上有一些人也遇到了相似的问题,但是在该版本中要实现该功能他们对TreeGrid进行了重构,修改了extjs中treegrid的js文件。。。这里不详细说明你,需要的自己去查阅。因为这里我要介绍另外一个方法来实现该功能。

      如何实现呢,答案是使用Xtemplate。对就是它!我们知道ext.net提供了控件的Xtemplate模板来修改控件的内部实现,因此我们可以通过实现为每个TreeGrid的节点显示一个checkbox。下面给出代码样例: 

    TreeGrid with XTemplate
     1   <ext:TreeGrid ID="TG" runat="server" Title="TreeGrid" EnableDD="true" Region="Center"> 
     2                 <Columns>
     3                     <ext:TreeGridColumn Width="150" Header="选择" Align="Left">
     4                         <XTemplate ID="XTemplate" runat="server">
     5                             <Html>
     6                                 <tpl for="."> 
     7                                    <tpl if="ShowCheckBox=='True'"> 
     8                                        <input type="checkbox" id="{id}" onchange="TreeCheckedChanged(this)"  />  
     9                                    </tpl>  
    10                                    <lable>{Name}</lable>
    11                                 </tpl>
    12                             </Html>
    13                             <Functions>
    14                                 <ext:JFunction Name="TreeCheckedChanged" />
    15                             </Functions>
    16                         </XTemplate>
    17                     </ext:TreeGridColumn>
    18                     <ext:TreeGridColumn Width="150" Header="年龄" DataIndex="Age" />
    19                     <ext:TreeGridColumn Width="150" Header="性别" DataIndex="Sex" />
    20                     <ext:TreeGridColumn Width="150" Header="备注" DataIndex="Remark" />
    21                 </Columns>
    22                 <Root>
    23                     <ext:AsyncTreeNode NodeID="root" Text="root" Expandable="True">
    24                     </ext:AsyncTreeNode>
    25                 </Root>
    26                 <Loader>
    27                     <ext:TreeLoader DataUrl="/Home/LoadNodes/">
    28                         <BaseParams>
    29                             <ext:Parameter Name="id" Value="node.id" Mode="Raw" />
    30                             <ext:Parameter Name="pId" Value="node.attributes.Name" Mode="Raw" />
    31                         </BaseParams>
    32                     </ext:TreeLoader>
    33                 </Loader>
    34                 <SelectionModel>
    35                     <ext:DefaultSelectionModel runat="server">
    36                     </ext:DefaultSelectionModel>
    37                 </SelectionModel>
    38             </ext:TreeGrid>

    关于代码中的Loader的具体后台实现可以参见前面一篇关于TreeGrid加载后台数据的文章Ext.net TreeGrid

  • 相关阅读:
    梅花雨控件使用时注意的...
    利用XML实现通用WEB报表打印(实现篇)
    Improve performance using ADO.NET 2.0 batch update feature
    hook
    owc11生成饼状图
    PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别
    PHP中使用函数array_merge()合并数组
    WCF 第四章 绑定
    WCF 第四章 绑定 跨机器通信
    WCF 第六章 序列化与编码 系列文章
  • 原文地址:https://www.cnblogs.com/rpoplar/p/2781734.html
Copyright © 2011-2022 走看看