【问题标题】:How to disable checkbox inside gridview?如何禁用gridview中的复选框?
【发布时间】:2017-05-07 15:44:05
【问题描述】:

您好,我正在开发一个应用程序。我有一个多选下拉列表框。每当我在下拉列表框中选择一个值时,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>

当我从多选下拉列表框中选择一些值时,我会在所选变量中获得 id。一旦我在选定的变量中获得 ID,我想在 gridview 中禁用该复选框。我可以对此提出一些建议吗!谢谢大家

我尝试如下。

这是隐藏复选框的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"/>

每当我从下拉列表中获得一些值时,我都会尝试禁用该特定复选框。

【问题讨论】:

  • 你在选定的变量中得到了什么。它是单个值还是多个值,例如数组或逗号分隔的字符串?
  • 谢谢,它是用逗号分隔的多个值。

标签: c# jquery asp.net gridview checkbox


【解决方案1】:

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

var temp = new Array();

temp = selected.split(",");

然后循环遍历它

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

【讨论】:

    【解决方案2】:

    您可以循环 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2016-06-19
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多