在客户端的编辑模式下,在同一单元格网格视图中选中复选框时禁用文本框

Disable textbox when checkbox checked in same cell gridview in edit mode on client side

本文关键字:复选框 文本 视图 单元格 编辑 客户端 模式 网格      更新时间:2024-03-13

我在禁用gridview的edittemplate中选中的复选框上的文本框时遇到问题这是代码:

     <asp:TemplateField HeaderText="Navigation Path">
                      <ItemTemplate>
                            <asp:CheckBox ID="chkNavPath" runat="server" Enabled="false" />
                            <asp:Label ID="lblNavPath" runat="server" Text='<%# Bind("NavPath") %>' />
                        </ItemTemplate>
                         <EditItemTemplate>
                           <asp:CheckBox ID="chkEditNavPath" runat="server" Text="Open same image on click?" onclick="GetCheckStatus(this);"  Enabled="true" />
                           <asp:TextBox ID="txtEditNavPath" runat="server" Text='<%# Bind("NavPath") %>'></asp:TextBox>
                         </EditItemTemplate>
                      <FooterTemplate>
                                 <asp:CheckBox ID="chkNewNavPath" runat="server" Text="Open same image on click?" Enabled="true" />
                           <asp:TextBox ID="txtNewNavPath" runat="server" Text=""></asp:TextBox>       
                     </FooterTemplate>
                     </asp:TemplateField>

Javascript:

    <script language="javascript" type="text/javascript">
    function GetCheckStatus(obj) {
        var GridViewP = document.getElementById('<%=GridViewPDF.ClientID %>')
        debugger;
        if (GridViewP.rows[obj.parentElement.parentElement.rowIndex].cells[4].childNodes[0].type == "checkbox") {
            if (GridViewP.rows[obj.parentElement.parentElement.rowIndex].cells[4].childNodes[0].checked) {
                GridViewP.rows[obj.parentElement.parentElement.rowIndex].cells[4].childNodes[1].enabled = false; // Enable your control here
            }
        }
    }
    </script>

我无法访问js代码,我是个新手。

使用以下java脚本代码来完成客户端用以下替换GetCheckStatus功能

<script language="javascript" type="text/javascript">
function GetCheckStatus(obj) {
if (obj.checked) {
    obj.nextSibling.nextSibling.disabled = true;
}
else {
    obj.nextSibling.nextSibling.disabled = false;
}      
}
</script>

你必须用onchange事件调用这个函数,而不是像下面的那样点击复选框

onchange="GetCheckStatus(this);"

编辑:

<script language="javascript" type="text/javascript">
    function GetCheckStatus(obj) {
     if (obj.childNodes[0].checked) {
        obj.nextSibling.nextSibling.disabled = true;
     }
     else {
        obj.nextSibling.nextSibling.disabled = false;
     }      
    }
</script>

使用onchange事件应用函数