如何在gridview中禁用复选框?

时间:2016-12-22 04:49:42

标签: c# jquery asp.net gridview checkbox

您好我正在开发一个应用程序。我有一个多选下拉列表框。每当我在dropdownlistbox中选择一个值时,gridview中的相应值将在gridview下面具有复选框。我想禁用该复选框。我基本上是mvc开发人员,并且很难找到解决这个问题的方法。我正在努力解决这个问题。例如,当我在下拉列表中选择一些值时,我将使用jquery获取ID,如下所示。

<script>
$(function() {
    $('.limitedNumbSelect2').change(function (e) {
        var selected = $(e.target).val();
    }); 
});

这是我的网格视图。

 <asp:GridView ID="gdvRegretletter" CssClass="tableform" runat="server" AutoGenerateColumns="False" DataKeyNames="Vendor_ID"
        EmptyDataText="No records found !" ShowHeaderWhenEmpty="true" AllowPaging="true" OnPageIndexChanging="gdvRegretletter_PageIndexChanging">
        <Columns>
 <asp:TemplateField ShowHeader="true" HeaderText="Select All">
                <HeaderTemplate>
                    <asp:CheckBox ID="checkAll" runat="server" Text="Check All" onclick="checkAll(this);" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkselect" runat="server" onclick="Check_Click(this)" />
                    <asp:HiddenField ID="id" runat="server" Value='<%#Eval("Vendor_ID")%>' />
                </ItemTemplate>
                <HeaderStyle Width="8%" />
                <ItemStyle VerticalAlign="Top" Width="8%" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Username">
                <ItemTemplate>
                    <asp:Label ID="lblUsername" runat="server" Text='<%#Eval("Username") %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                    <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name") %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Email Id">
                <ItemTemplate>
                    <asp:Label ID="lblEmail" runat="server" Text='<%#Eval("Email") %>' />
                </ItemTemplate>
            </asp:TemplateField>
 </asp:GridView>

Whenecer我从multiselect下拉列表框中选择一些值我在选中的变量中得到id。一旦我在选定的变量中获得ID,我想在gridview中禁用该复选框。我可以就此提出一些建议!谢谢大家

Furthur我尝试如下。

这是隐藏复选框的jquery代码

 $('.limitedNumbSelect2').change(function (e) {
 selected = $(e.target).val();
`$(".disablechk[Text='selected']").prop("disabled", true);`

这是gridview中的复选框代码。

  <asp:CheckBox ID="chkselect" runat="server" onclick="Check_Click(this)" Text='<%#Eval("Vendor_ID")%>' class="disablechk"/>

我试图做的每当我从下拉列表中获得一些值时,我想禁用该特定复选框。

2 个答案:

答案 0 :(得分:2)

如果你得到逗号分隔的字符串,那么拆分它并创建一个数组

var temp = new Array();

temp = selected.split(",");

然后循环它

$.each(temp, function( index, value ) {
    $(".disablechk[Text='" + value  + "']").prop("disabled", true);
});

答案 1 :(得分:0)

您可以循环GridView HiddenField值并相应地禁用该复选框。

<script type="text/javascript">
    $(function() {
        $('.limitedNumbSelect2').change(function (e) {
            checkGridView($(e.target).val());
        }); 
    });

    function checkGridView(selected) {
        $('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function () {
            if ($(this).val() == selected) {
                var checkbox = $(this).prev();
                checkbox.prop("disabled", true);
            }
        });
    }
</script>