如果在C#中安排了第一个组合框值,则启用第二个组合框

时间:2016-09-27 06:43:27

标签: c# asp.net

今天的问候!!

我是DOT NET的新手。开发工具,构建UI。

我无法在选择其他组合框时生成组合框值。

问题是: 有2个组合框:DropDownList1和DropDownList2 DropDownList1值:0-所有1-Not Scheduled 2-Rejected 3-Selected DropDownList2值:0 - 选择所有1 - 差通信3 - 测试4 - 不良打字技能失败

值在组合框中填充。

//适用于DropDownList1

            SqlConnection con = new SqlConnection("Data Source=.;Initial                   Catalog=Test_DB;User ID=sa");
        con.Open();

        //Interview Status
        string Sql = "select Id,Status from dbo.InterviewStatus";

        SqlCommand cmd = new SqlCommand(Sql, con);
        cmd.CommandType = CommandType.Text;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        if (ds.Tables[0].Rows.Count > 0)
        {
           DropDownList1.DataSource = ds.Tables[0];
           DropDownList1.DataTextField = "Status";
           DropDownList1.DataValueField = "Id";
           DropDownList1.DataBind();
           DropDownList1.Items.Insert(0, new ListItem("All", "0"));
        }

现在,只有当DropDownList1被拒绝时才应启用DropDownList2。 对于其他DropDownList1值,应禁用DropDownList2。

请帮我解决这个问题。

提前致谢:)

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以使用SelectedIndexChanged事件并检查cboStatus

中的值
private void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (DropDownList1.SelectedItem.ToString() == "2")
    {
        DropDownList2.Enabled = true;
    }
}

编辑:

由于索引似乎与您的Status值一致,因此您实际上只需要索引,除非它是用户的重要信息。要填充ComboBox,只需将数据库中的值作为List获取并使用AddRange方法

DropDownList1.Items.AddRange(listOfValues.ToArray());

答案 1 :(得分:0)

您可以按照下面给出的方法执行级联样式下拉列表,也可以在初始化过程中填充cboComments DropDownList,因为数据很小,而且它通常是aspx控件在Page_Load事件中执行此操作,您可以查看this主题以获取更多信息。

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CascadingDDL._Default" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

    <div class="jumbotron">
        <h1>Cascading Drop Down List</h1>
    </div>

    <div class="row">
        <div class="col-md-12">
            <asp:DropDownList ID="cboStatus" runat="server" AutoPostBack="true" OnSelectedIndexChanged="cboStatus_SelectedIndexChanged">
                <asp:ListItem Value="0" Text="All"></asp:ListItem>
                <asp:ListItem Value="1" Text="Not Scheduled"></asp:ListItem>
                <asp:ListItem Value="2" Text="Rejected"></asp:ListItem>
                <asp:ListItem Value="3" Text="Selected"></asp:ListItem>
            </asp:DropDownList>

            <asp:DropDownList ID="cboComments" runat="server">
                <asp:ListItem Value="0" Text="Select All"></asp:ListItem>
                <asp:ListItem Value="1" Text="Poor Communication"></asp:ListItem>
                <asp:ListItem Value="3" Text="Failed in Test"></asp:ListItem>
                <asp:ListItem Value="4" Text="Poor Typing skill"></asp:ListItem>
            </asp:DropDownList>
        </div>
    </div>

</asp:Content>

守则背后

namespace CascadingDDL
{
    using System;
    using System.Web.UI;

    public partial class _Default : Page
    {
        public const int StatusRejected = 2;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                this.cboComments.Enabled = false;
            }
        }

        protected void cboStatus_SelectedIndexChanged(object sender, EventArgs e)
        {
            var status = int.Parse(this.cboStatus.SelectedValue);
            if (status == StatusRejected)
            {
                this.cboComments.Enabled = true;
            }
            else
            {
                this.cboComments.Enabled = false;
            }
        }
    }
}