ext.net2.5

在grid 外使用一个按钮保存grid 中的修改

http://localhost:51297/Examples/GridPanel/ArrayGrid/_Simple_Editable/Default.aspx


GridPannel 中如果使用 方式一绑定数据 你会发现 在你使用render 渲染数据时 渲染一条记录 但是会调用两次渲染方法  .使用方式二就不会.

对于使用方法二时 如果你的数据无法绑定上 可能是应为你的数据源是对象数组或者其他非默认类型的数据源 这时只要 加上一个对应的类型的reader 就可以如.使用render的列不能再使用编辑列 就算用了也起不了作用

              <Reader >
               <ext:ArrayReader  ></ext:ArrayReader>

              </Reader>


       方式一

            this.Store1.DataSource = this.Data;
            this.Store1.DataBind;

     方式二

           this.Store1.Data = this.Data;


第一种数据源用 列表

private object Data
    {
        get
        {
            return new List<object>
                    {
                       new { company = "3m C1o", price =1, change = 1, pctChange = 0.03},
                        new { company = "3m Co2", price =2, change = 2, pctChange = 0.03}

                        };
        }
    }

第二种数据源 对象数组需要ArrayReader  才能被 grid 识别 否则要使用方式一绑定数据 但是方式一会出现调用两次render 方法问题 所以建议用arrayreader

    private object[] Data
    {
        get
        {
            DateTime now = DateTime.Now;

            return new object[]
            {
                new object[] { "3m Co", 1,1, 0.03, now }
             
            };
        }
    }


<Reader >
               <ext:ArrayReader  ></ext:ArrayReader></Reader>  


GridPannel 学习要点:数据绑定 分页 加载 行命令但也个命令 排序

 MenuDisabled 控制表头中是否出现三角箭头的菜单(排序 控制列的显示等)

<ext:ColumnID="label" runat="server" Text="�" Fixed="true"Sortable="false"MenuDisabled="true"Flex="1">                   <Renderer Fn="function (v, p, record, rowIndex) {return 'Row �'+rowIndex}"/>                </ext:Column>

 

listeners 监听
ComponentColumn as Pin Editor 可以设置grid 中日历的格式

Infinite scrolling 可以设置一次性加载所有记录 使用滚动条模式  可以有跳到第几行的功能

compnnentcolumn overview  在一个grid中 可以使用进度条控制每行中的任务

command prepare tooolbar prepare command  可以控制grid 中的按钮状态

 

gridpanel -listview

ext.net gridpanel  绑定数据   构造类时别忘记加上{ get; set; }  否则数据绑定不上去

public class Employee
        {
            public int Id{ get; set; }
            public string Name { get; set; }
            public Department Department{ get; set; }
        }

 

调用后台代码几种方法

 <Proxy>
                    <ext:PageProxy DirectFn="App.direct.BindData">
                    </ext:PageProxy>
                </Proxy>

  <Convert Handler="return value === 'Y';" />

 <Convert Fn="preBossName">

 <Listeners>                           <CommandFn="onCommand"/>                       </Listeners>

有用的脚本

  //DepartmentName 指的的事store中的字段名
        var departmentName = function (value) {
            if (!Ext.isEmpty(value)) {
                return value.Name;
            }
            return value;
        };

        var fullName = function (value, metadata, record, rowIndex, colIndex, store) { return "<b>" + record.data.Department.Name + "——" + value + "</b>"; };

        var preBossName = function (value, record) { return record.get('Boss').Name; };
        //App.ContentPlaceHolder1_StoreCombo 有了母板页控件名和无母板页控件名是有区别的
        var departmentRenderer = function (value) {
            var r = App.ContentPlaceHolder1_StoreCombo.getById(value);

            if (Ext.isEmpty(r)) {
                return "";
            }

            return r.data.Name;
        };

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值