我在GridView中有一个复选框和一个文本框(对于每一行),我希望能够编写一些JavaScript来启用和禁用文本框,具体取决于复选框(选中或取消选中)。我想我必须以某种方式给JS提供索引。这可能吗?在GridViewRow中禁用/启用文本框
回答
感谢您的回复,我已经解决此问题的只是做了回发的工作 - 不是最好的方法,但由于时间的限制这是合乎逻辑的选择
如果你准备使用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类。
是的,这是绝对有可能的。
要实现这一点,你需要做到以下几点:
编写一个通用的JavaScript函数来处理基础上的复选框的状态的文本框的启用/禁用;
实施例: -
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;
}
}处理的网格视图的行数据绑定事件。在.Net代码中实现类似的功能,以基于复选框的状态来处理启用/禁用文本框(针对每行)。并且将JavaScript功能添加到复选框;
例子: -CheckBox checkSource; TextBox textAffecting; checkSource = e.Row.FindControl("cbSource") as CheckBox; textAffecting = e.Row.FindControl("tbAffecting") as TextBox; if(checkSource != null) { textAffecting.Enabled = checkSource.Checked; } checkSource.Attributes.Add("onclick", "ManageControlEnabling('" + checkSource.ClientID + "', '" + textAffecting.ClientID + "', true);");
请看看这有助于。
谢谢。
感谢您的帮助:)可悲的是,它不起作用 - rowdatabound部分工作(它添加了属性,并且取决于复选框状态,文本框被禁用/启用),但是当我单击复选框时它从不启用文本框 - 即使我把所有的if都拿出来并且让它启用了文本框。 – Chris 2010-12-14 10:46:59
- 1. 存在与启用禁用文本框
- 2. 使用jQuery启用禁用文本框
- 3. ASP.NET MVC Checboxes禁用/启用文本框
- 4. MS Access VBA启用/禁用文本框
- 5. 启用和禁用文本框的jQuery
- 6. 在其他文本框中更改值时启用或禁用文本框
- 7. 禁用/启用QCheckBox文本
- 8. 禁用文本框在IE8
- 9. 禁用文本框
- 10. 通过复选框启用和禁用文本框数组
- 11. ASP.NET复选框代码启用/禁用文本框后面
- 12. 试图启用/禁用复选框上的文本框单击
- 13. 启用和在asp.net禁用文本框2.0
- 14. 在禁用和启用后,WPF文本框焦点“粘住”
- 15. 在提交时禁用文本框并启用重置
- 16. 在JSP中禁用文本框
- 17. 无法在vb.net中禁用文本框
- 18. 在html中禁用文本框?
- 19. 如何在Selenium中禁用文本框
- 20. 启用和禁用文本框的不同上下文菜单
- 21. Cakephp:当复选框被选中/取消选中时启用/禁用文本框
- 22. gridview文本框启用禁用使用jQuery
- 23. 如何使用checkox在阵列中每行启用/禁用文本框
- 24. 禁用文本框的BackgroundColor
- 25. 禁用文本框建议
- 26. 已禁用文本框
- 27. asp.net MVC:禁用文本框
- 28. 已禁用文本框
- 29. 复选框禁用启用
- 30. 启用/禁用文本框放在gridview检查事件复选框与javascript
我要补充这一点的唯一一件事就是关闭在asp.net页面上查看状态验证。由于您正在修改页面中控件的状态,所以查看状态验证将会引发错误。这些错误是间歇性的,很难调试,但他们在那里。禁用视图状态验证可以防止这种情况发生,并使JavaScript有机会在客户端修改html控件,同时强制服务器端不要大惊小怪。 – bleepzter 2010-12-14 19:19:15