簡體   English   中英

當復選框在客戶端的編輯模式下在同一單元格gridview中選中時,禁用文本框

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

我在禁用在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事件而不是復選框的onclick調用此函數,如下所示

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事件應用功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM