在JQGrid中添加img上的onclick事件

时间:2011-08-02 12:41:29

标签: javascript jqgrid

我是JQuery的新手,我遇到了一些麻烦

function Clients(guid)
{
 var that = this;

this.guid = guid;
this.container = $("#Clients_" + that.guid);

this.LoadClients = function () {
 var ids = that.container.find("#clients-tbl").getDataIDs();

    for (var i = 0; i < ids.length; i++) {
        var row = that.container.find("#clients-tbl").getRowData(ids[i]);

        var imgView = "<img src='../../Content/Images/vcard.png' style='cursor:pointer;' alt='Open case' onclick=OnClickImage(" + ids[i] + "); />";

        that.container.find("#clients-tbl").setRowData(ids[i], { CasesButtons:  imgView });
    }
}


this.CreateClientsGrid = function () {
    var clientsGrid = that.container.find("#widget-clients-tbl").jqGrid({
.....
 ondblClickRow:function(rowid)
{
   ---
}
  loadComplete: function () {
            that.LoadClients();


        }
 }
 this.OnClickImage=function(idClient){
  ....
 }

 this.Init = function () {
    that.CreateClientsGrid();
};

this.Init();
}

问题在于onclick,因为OnClickImage不是全局函数。 我如何使用OnClickImage函数?

1 个答案:

答案 0 :(得分:0)

您可以通过不同方式绑定到click事件。例如,您可以按照the answer的方式进行操作。顺便说一句,它的工作速度更快getRowDatasetRowData。此外,您应该将that.container.find("#clients-tbl")操作的结果保存在循环的中,并使用循环内的变量。 JavaScript是动态语言,每次操作都会ids.length

另一种方法是使用onCellSelect事件而不使用 click事件绑定。请参阅描述该方法的the answer并给出相应的演示。