我在GridView中有一个复选框和一个文本框(对于每一行),我希望能够编写一些javascript来启用和禁用文本框,具体取决于复选框的状态(选中或取消选中) 。我想我必须以某种方式给JS行行索引。这可能吗?
答案 0 :(得分:1)
如果您准备使用jquery,那么可以通过以下方式轻松完成:
$(document).ready(function() {
$('.grid tr').each(function() {
var r = $(this);
var c = r.find('.check');
var t = r.find('.text');
var f = function(c1, t1) { return function() {
if (c1.attr('checked')) {
t1.removeAttr('disabled');
}
else {
t1.attr('disabled', 'disabled');
}
};
};
c.click(f(c, t)); // attach click event handler
f(c, t); // set initial state
});
});
上面的脚本假设gridview表用grid
css类装饰,每个文本框和复选框分别用check
和text
css类装饰。
答案 1 :(得分:0)
是的,这绝对是可能的。
要实现这一点,您需要执行以下操作:
编写一个通用JavaScript函数,根据Check-Box的状态处理文本框的启用/禁用;
示例: -
function ManageControlEnabling(sourceCheckBoxId, affectingControlId)
{
var sourceCheckBox = document.getElementById(sourceCheckBoxId);
var affectingControl = document.getElementById(affectingControlId);
var shouldEnable = false;
if (sourceCheckBox && affectingControl)
{
shouldEnable = sourceCheckBox.checked;
if(shouldEnable)
affectingControl.disabled = false;
else
affectingControl.disabled = true;
if(shouldEnable)
affectingControl.disabled = false;
else
affectingControl.disabled = true;
处理Grid-View的Row-Data-Bound事件。在.Net代码中实现类似的功能,以根据复选框的状态处理文本框(对于每一行)的启用/禁用。并将JavaScript函数添加到复选框;
示例: -
}
}
请查看这是否有帮助。
感谢。
答案 2 :(得分:0)
感谢您的所有回复,我通过回发来解决这个问题 - 不是最好的方法,但由于时间限制,这是合乎逻辑的选择