extjs中,renderer函数处理时,想把整个record传递给另一个函数Ext.test.createWin(),
即:
   renderer : function(value, metadate, record, colIndex, rowIndex) {
    var s = '<a href="javascript:Ext.test.createWin(0,'+record+')">传递数组</a>';
    return s;
   }
这里record是个数组,但传值之后,在Ext.test.createWin函数里typeof record返回的是string类型,而不是数组,所以根本取不到record里面的值,请问这里该怎么传递?

解决方案 »

  1.   

    var s = '<a href="javascript:Ext.test.createWin(0,'+Ext.encode(record)+')">传递数组</a>';
      

  2.   

    showbo,谢谢你,不过换用这种方式,报Uncaught RangeError: Maximum call stack size exceeded 异常。
      

  3.   

    var d=Ext.encode(record);
    var s = '<a href="javascript:Ext.test.createWin(0,'+d+')">传递数组</a>'; 改这样试试,如果是var d=这句报错说明Ext.encode序列化json对象有问题,你得自己组合成json字符串了。
      

  4.   

    var d=Ext.encode(record);
    var s = '<a href="javascript:Ext.test.createWin(0,'+d+')">传递数组</a>'; 还是报刚刚那个异常,改成下面这样:
    var newRecord=record.copy();
    var s = '<a href="javascript:Ext.test.createWin(0,'+newRecord+')">传递数组</a>'; 
    会报Uncaught SyntaxError: Unexpected end of input 异常。初步确定了下原因,组合的字符串里包含特殊符号单引号。