2013-06-21 5 views
0

У меня есть таблица (сгенерированная в asp.net), отображаемая с помощью великолепного плагина JQuery DataTable. В моей таблице есть некоторые редактируемые поля (я использовал jQuery Datatables editable), и у меня уже есть некоторые пользовательские поля в некоторых моих таблицах.Использование пользовательских полей в редактируемом jQuery DataTable при редактировании флажка

Это таблица с редактируемым только 3 ° столбцом, которая отправляет два дополнительных параметра (столбец 3 и 1 моей таблицы): «cell» и «trustedid». Это отлично работает:

$('#ctl00_MainContent_tradGrid').dataTable({ 
    bJQueryUI: true, 
    "sPaginationType": "full_numbers", 
    "bSortClasses": false 
    }).makeEditable({ 
     sUpdateURL: "/updateData.aspx<% Response.Write(parameters); %>", 
     fnOnEditing: function (input) { 
      cell = input.parents("tr") 
        .children("td:nth-child(3)") 
        .text(); 
      trustedid = input.parents("tr") 
        .children("td:nth-child(1)") 
        .text(); 
      return true 
     }, 
     oUpdateParameters: { 
      cell: function() { return cell; }, 
      trustedid: function() { return trustedid; } 
     }, 
     oEditableSettings: { event: 'click' } 
    }); 

я также другую таблицу с флажками на последней редактируемой колонке, и прекрасно работает тоже, это код:

$('#ctl00_MainContent_tradGrid').dataTable({ 
    bJQueryUI: true, 
    "sPaginationType": "full_numbers", 
    "bSortClasses": false 
}).makeEditable({ 
    sUpdateURL: "/updateChecked.aspx", 
    aoColumns: [ 
     {}, {}, {}, { 
      type: 'checkbox', 
      submit: 'Ok', 
      cancel: 'Cancel', 
      checkbox: { trueValue: 'Yes', falseValue: 'No' } 
     } 
    ] 
}); 

Теперь мне нужно использовать один пользовательский параметр в этот второй пример, но не может этого сделать! Это моя попытка:

$('#ctl00_MainContent_tradGrid').dataTable({ 
    bJQueryUI: true, 
    "sPaginationType": "full_numbers", 
    "bSortClasses": false 
}).makeEditable({ 
    sUpdateURL: "/updateChecked.aspx", 
    fnOnEditing: function (input) { 
     trustedid = input.parents("tr") 
       .children("td:nth-child(1)") 
       .text(); 
     return true 
    }, 
    oUpdateParameters: { 
     trustedid: function() { return trustedid; } 
    }, 
    aoColumns: [ 
     {}, {}, {}, { 
      type: 'checkbox', 
      submit: 'Ok', 
      cancel: 'Cancel', 
      checkbox: { trueValue: 'Yes', falseValue: 'No' } 
     } 
    ] 
}); 

но получаю ошибку: Uncaught ReferenceError: trustedid is not defined

Как я могу это сделать?

ответ

0

fnOnEditing вызывается только по тексту, select и textarea: if(settings.type == "text" || settings.type == "select" || settings.type == "textarea") вокруг строки 209 в jquery.dataTables.editable.js. Я использовал его с некоторыми полями автозаполнения, и он сработал. Вы можете добавить флажок в этот список, но, вероятно, вам нужны и другие изменения, так как .val() на флажке не вернет правильное значение.