今天的问候!!
我是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。
请帮我解决这个问题。
提前致谢:)
答案 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;
}
}
}
}