• Extjs中grid上显示combo中值的问题


      在extjs中,grid上渲染的combo中的值,默认显示的是valueField的上值,也就是说在grid上的combox显示的是当前值的下标索引
    而不是我们所需要的displayField上的属性值!那么如何解决这个问题呢?我们要去写一个renderer这个事件例如下面代码
        dataIndex: 'belongNodeID',
        header: '选择任务关系',
        editor: {
         id: 'belongNodelist',
         xtype: 'combo',
         typeAhead: true,
         selectOnTab: true,
         store: belongNodeStore,
         displayField: 'label',
         valueField: 'value',
         editable: false,
         lazyRender: true,
        },
        //显示displayvalue就要给该列添加renderer方法
        renderer: function(data) {
             //循环遍历belongNodeStore中数据里的集合
         for (var i = 0; i < belongNodeStore.data.items.length; i++) {
          //如果索引相同
          if (belongNodeStore.data.items[i].data.value == data) {
           //返回数据集合里displayField中的值
           return belongNodeStore.data.items[i].data.label;
          }
         }
        } 
    这里的 belongNodeStore是从数据库里读出combo中所需要的数据保存在belongNodeStore中的store,即
     var belongNodeStore = Ext.create('Ext.data.Store', {
       fields: ['label', 'value'],
    //小脚本中的方法是从后台中定义的
       data: [ <%=getComBox() %>],
       autoLoad: true
      }); 
    后台读取代码如下 
    public string getComBox()
    {
    ...//调用数据库方法省略,把读取出来的数据保存在一个list对象集合里    
         StringBuilder sb = new StringBuilder();
                foreach (var item in list)
                {
                    sb.Append("{'label':'"+item.Name+"','value':'"+item.Id+"'},");
                }
                return sb.ToString().TrimEnd(',');

    以上代码就可以实现从数据库中读出来的数据能够在grid中的Combo中显示其对应的 displayField值 

  • 相关阅读:
    ASP.NET实现写入和读取图片(C#+SQL Server)
    nginx for windows: 让nginx以服务的方式运行(亲侧修正)
    开源射击FPS游戏Blood Frontier Beta 2发布
    批处理更改IP
    Javascript 函数: CTRL+回车 提交表单
    汇总Javascript各种判断脚本
    Linux在好莱坞战胜了微软?
    SATA硬盘和IDE硬盘共存问题
    总结性知识:107个常用Javascript语句
    ASP.NET调用javascript脚本的方法总结
  • 原文地址:https://www.cnblogs.com/ljh1993/p/3233105.html
Copyright © 2020-2023  润新知