В JQGrid добавь событие onclick на img - PullRequest
0 голосов
/ 02 августа 2011

Я очень плохо знаком с 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 голосов
/ 02 августа 2011

Вы можете привязаться к событию click различными способами. Например, вы можете следовать по пути от к ответу . Кстати, он работает намного быстрее как getRowData и setRowData. Более того, вы должны сохранить результат операции that.container.find("#clients-tbl") в переменной вне цикла и использовать переменную внутри цикла. JavaScript - это динамический язык, и каждая операция, даже ids.length, будет выполняться каждый раз.

Еще один способ - использовать onCellSelect событие без привязки события click. См. ответ , который описывает подход и дает соответствующую демонстрацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...