Вам не нужно устанавливать идентификатор CheckBox для выполнения того, что вы хотите сделать (изменить цвет фона). Ваш CheckBox должен выглядеть следующим образом (я добавил KeyID
как текстовое значение, если вы хотите, чтобы отобразить его ... или вы можете просто удалить, что если вы хотите только флажок):
<asp:CheckBox runat="server" ID="checkbox" Text='<%# Eval("KeyID") %>' AutoPostBack="false"></asp:CheckBox>
Теперь ваш флажок будет оказывать что-то вроде этого:
<input id="MainContent_Grid_checkbox_0" type="checkbox" name="ctl00$MainContent$Grid$ctl02$checkbox" /><label for="MainContent_Grid_checkbox_0">Value of KeyID</label>
Поскольку все имена заканчиваются «флажок», вы можете применить функцию на событие изменения для тех элементов, чье имя оканчивается на «флажок». Вы не указали, что это был вопрос JavaScript, или если вы используете JQuery ... этот ответ использует jQuery:
<script>
$('input[name$="checkbox"]').change(function() {
if ($(this).is(':checked')) {
$(this).parent().css('background-color', 'yellow');
}
else {
$(this).parent().css('background-color', 'white');
}
});
</script>
Это будет определять, если флажок установлен, и если так будет установить background- цвет его родителя (<td>
, который находится внутри, в обработанном DataGrid HTML), в зависимости от значения.
Аналогичным образом, вы можете перейти к следующему parent()
и выделить всю строку.
Ресурсы: jQuery Selectors
OnCheckedChanged - это событие, которое вы бы обработать в коде позади, а не в JavaScript.
попробуйте одинарные кавычки вместо двойной за пределами блока данных.Eval .. например. ID = 'checkBox - <% # DataBinder.Eval (Container.DataItem, "KeyID")%>' – lahsrah
Возможный дубликат [Использование DataBinder.Eval() в атрибуте style для элемента управления asp.net] (http: // stackoverflow .com/questions/3434744/using-databinder-eval-in-style-attribute-of-an-asp-net-control) (ключевой момент: вы не можете использовать 'DataBinder.Eval' только для части значения атрибута .) –
@sylon это не работает для одиночных Qoutes тоже. ID = 'checkBox - <% # DataBinder.Eval (Container.DataItem, "ID")%>' Ошибка 'checkBox - <% # DataBinder.Eval (Container.DataItem, "ID")%>' is not действительный идентификатор. – RockOnGom