You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ASCX用户控件的GridView中实现勾选复选框禁用TextBox

解决GridView中勾选CheckBox禁用对应TextBox的问题

我来帮你搞定这个功能!你现在已经搭好了基础的事件绑定框架,只需要完善JavaScript里的逻辑,找到对应行的TextBox并控制它的禁用状态就可以了。

核心思路

GridView的每一行都是独立的<tr>元素,我们可以通过当前点击的CheckBox向上遍历找到它所在的行,再在该行内定位到对应的txtCause文本框,最后根据CheckBox的勾选状态来设置文本框的禁用属性。

修改后的代码实现

保持你的GridView结构不变,只需要更新grisé函数即可:

function grisé(obj) {
    // 找到当前CheckBox所在的表格行
    var row = obj.closest('tr');
    // 在该行中查找ID以"txtCause"结尾的TextBox(适配ASP.NET生成的带前缀ID)
    var txtCause = row.querySelector('[id$="txtCause"]');
    
    // 根据CheckBox的勾选状态,设置TextBox的禁用状态
    txtCause.disabled = obj.checked;
}

补充说明

  1. 控件ID匹配逻辑:ASP.NET会给服务器控件生成带前缀的ID(比如gvModifOuvrageNonControles_ctl02_txtCause),用[id$="txtCause"]这种“ID以txtCause结尾”的选择器,能准确定位到每行对应的TextBox。
  2. 老浏览器兼容方案:如果需要兼容不支持closest方法的旧浏览器,可以用以下代码替代行查找逻辑:
    var row = obj;
    while (row.tagName !== 'TR') {
        row = row.parentNode;
    }
    
  3. 效果验证:现在勾选CheckBox时,对应的文本框会变灰并禁用;取消勾选时,文本框会恢复可用状态。

内容的提问来源于stack exchange,提问作者user12456581

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:47:19