2015-12-11 42 views
0

我在使用項目模板創建的網格視圖中有兩個複選框。 我想禁用其他複選框,如果在網格視圖中選擇一個。如果在ASP.Net中的GridView ItemTemplate中選中一個複選框,則禁用其他複選框。

GridView的代碼: -

<asp:TemplateField HeaderText="Approved"> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkApprove" Text="Approved" runat="server" /> 
     </ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Rejected"> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkRejected" Text="Rejected" runat="server" /> 
     </ItemTemplate> 
</asp:TemplateField> 

Javascript代碼: -

function CheckBox_Clicked(chk) { 
     var grid = chk.parentNode.parentNode.parentNode; 
     var chks = grid.getElementsByTagName("input"); 
     for (var i = 0; i < chks.length; i++) { 
     if (chks[i].type == "checkbox" && chks[i] != chk) { 
      chks[i].disabled = chk.checked; 
     } 
     } 
    } 
+0

@Prakash - BTW使用jQuery的任何限制? –

+0

@RahulSingh - NO – Prakash

+0

[ASP.NET MVC3 @ Html.EditorFor複選框禁用啓用]的可能副本(http://stackoverflow.com/questions/10910548/asp-net-mvc3-html-editorfor-checkbox-disable-enable ) – Vogel612

回答

0

您可以輕鬆地jQuery這樣做: -

$(document).ready(function() { 
    $('input[id*="chkApprove"]').change(function() { 
     var currentRow = $(this).parents('tr')[0]; 
     $('input[id*="chkRejected"]', currentRow).attr('disabled', this.checked); 
    }); 

    $('input[id*="chkRejected"]').change(function() { 
     var currentRow = $(this).parents('tr')[0]; 
     $('input[id*="chkApprove"]', currentRow).attr('disabled', this.checked); 
    }); 
}); 

代碼說明: -

我正在使用jquery Ends with屬性選擇器來獲取chkRejected複選框,因爲它的ID將呈現爲GridView1_chkApprove_0並註冊更改事件。在這裏面,我找到了包含行(因爲gridview呈現爲HTML表格),最後選擇其他複選框(存在於同一行內)並禁用它。

+0

Rahul singh - 感謝它的正常工作... – Prakash

+0

@Prakash - 不客氣。如果這對你有幫助,你可以接受答案。檢查如何 - http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

相關問題