Javascript ExtJS-使用函数创建超链接

Javascript ExtJS-使用函数创建超链接,javascript,asp.net,wcf,extjs,Javascript,Asp.net,Wcf,Extjs,我正在尝试构建一个编辑列,但由于某些原因,我的例程不太正确。我的“商店”价值观是不会像我想象的那样退货 有什么想法吗 function editLinkRenderer(value, metadata, record, rowIndex, colIndex, store) { if (store == V2020.ServiceStore) return '<a href="javascript:editServices(' + value + ')">

我正在尝试构建一个编辑列,但由于某些原因,我的例程不太正确。我的“商店”价值观是不会像我想象的那样退货

有什么想法吗

    function editLinkRenderer(value, metadata, record, rowIndex, colIndex, store) {
    if (store == V2020.ServiceStore)
        return '<a href="javascript:editServices(' + value + ')">Edit</a>';
    else if (store == V2020.PriceStore)
        return '<a href="javascript:editPrice(' + value + ')">Edit</a>';
    else if (store == V2020.PromoStore)
        return '<a href="javascript:editPromo(' + value + ')">Edit</a>';
    return "Edit";
}

<>你可以考虑使用。这样您就可以做到:

var items = [ ... ]; // existing items
if (store.constructEditColumn) {
  items.push(store.constructEditColumn());
}
您的
constructEditColumn
可能如下所示:

...

constructEditColumn: function() {
  return {
    xtype: 'actioncolumn',
    items: {
      text: 'Edit',
      handler: function() {
        // do stuff
      },
      scope: this
    }
  }
},
...

除此之外,我会怀疑在商店里做平等的事。这两个参数在
存储
整数之前吗?您能否中断并查看
record.store
属性是否符合您的期望?旧版本的Ext可能与渲染器具有不同的签名?

非常感谢您的关注,但我解决了这个问题


我错误地定义了两个V2020.ServiceStore,而后一个却把一切都搞糟了。

我看不出您的代码中有任何错误,我能看到的唯一可能性是
store==V2020.ServiceStore
要成为真值,这两个对象必须是同一个实例。使用firebug商店看起来还好吗?这个函数是如何调用的?如果这是EditorGridPanel之类的侦听器,您应该知道从哪个存储调用它。我不知道哪个事件会触发这个函数。
...

constructEditColumn: function() {
  return {
    xtype: 'actioncolumn',
    items: {
      text: 'Edit',
      handler: function() {
        // do stuff
      },
      scope: this
    }
  }
},
...