Возможно, вам следует использовать делегирование событий.в сетке, чтобы сделать это.
Этот javascript предполагает, что ваше имя тега строки равно 'tr' и что ваш второй флажок является вводом [1] при выборе всех входов этой конкретной строки.Если вам нужна поддержка IE, вам нужно будет использовать вашу любимую оболочку обработки событий.
window.onload = function () {
var rowNodeName = 'tr',
firstInputClassName = 'foo';
document.getElementById('<%=gvPODetails.ClientID %>').addEventListener('change', function (e) {
if (e.target.type === 'checkbox' && e.target.className.match(firstInputClassName)) {
// Find parent row
var row = e.target.parentNode;
while (row.nodeName !== rowNodeName.toUpperCase()) {
row = row.parentNode;
if (!row) {
break; // In case we hit document
}
}
if (row) {
var inputs = row.getElementsByTagName('input');
inputs[1].disabled = !e.target.checked;
}
}
}, false);
}
Это будет обрабатывать события изменения для любого входа в сетке с className 'foo', как определено в переменной firstInputClassName,Когда триггер будет перемещаться вверх по дереву dom к узлу с тэгом, равным rowNodeName, выберите входы в этой строке и установите отключенное состояние второго входа в этой строке, противоположное проверенному состоянию входа, который вызвал событие.