【问题标题】:Enable Disable Checkbox in Asp.net Gridview Based on DropDownList in C#基于C#中的DropDownList在Asp.net Gridview中启用禁用复选框
【发布时间】:2014-10-15 23:12:22
【问题描述】:

在 C# 中基于 DropDownlist 在 Asp.net Gridview 中启用禁用复选框

我的 C# 代码有问题。

我需要根据 DropDownList 在 asp.net gridview 中启用或禁用复选框。

如果在 DropDownList 中没有选择任何值,则 GridView 中的复选框被禁用。

当在 DropDownList 中选择了一个值时,GridView 中的复选框会为 DropDownList 中选择的变量启用。

在 GridView 中,当 DropDownList 中选择了一个值时,输出是正确的,但复选框始终处于启用状态。

我尝试使用这些解决方案但没有成功。

这是我的代码:

   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox chkSelect = (CheckBox)e.Row.FindControl("chkSelect");

                if (DDL.SelectedIndex != 0)
                {
                    chkSelect.Enabled = true;
                }
            }
        }
        catch (Exception)
        {
        }
    }

编辑#1

            <asp:DropDownList ID="DDL" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DDL_SelectedIndexChanged"
                CssClass="ddl_Class" Enabled="false">
                <asp:ListItem Text="-------" Value=""></asp:ListItem>
            </asp:DropDownList>                    

                <asp:TemplateField>
                    <ItemTemplate>
                        <center>
                            <asp:CheckBox ID="chkSelect" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged"
                                AutoPostBack="true" Enabled="false" /></center>
                    </ItemTemplate>
                </asp:TemplateField>


protected void DDL_SelectedIndexChanged(object sender, EventArgs e)
{

    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
        CheckBox chkSelect = ((CheckBox)GridView1.Rows[i].FindControl("chkSelect"));

        if (DDL.SelectedIndex != 0)
        {
            chkSelect.Enabled = true;
        }
    }

    GridViewBind();
}

【问题讨论】:

  • 尝试使用dropdown_SelectedIndexChanged事件。首先在该事件中找到检查按钮,然后应用您的条件。

标签: c# asp.net gridview checkbox


【解决方案1】:

您设置复选框启用或禁用打开

    protected void DDL_SelectedIndexChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            CheckBox chkSelect = ((CheckBox)GridView1.Rows[i].FindControl("chkSelect"));

            if (DDL.SelectedIndex != 0)
            {
                chkSelect.Enabled = true;
            }
        }
    }

【讨论】:

  • 感谢您的帮助。在我第一个发布新版本代码的 edit #1 中,复选框现在都被禁用了。
  • @Hamamelis 不绑定网格第二次 GridViewBind() 删除
【解决方案2】:

使字符串小写应该有帮助吗?

 Eval("Reason").ToString().ToLower().Equals("hybrid")

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 2015-08-02
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多