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

时间:2013-12-05 10:40:46

标签: javascript asp.net

我在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代码,我是新手。

1 个答案:

答案 0 :(得分:0)

使用以下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事件应用函数