我有两个下拉列表,其中一个是“State”,另一个是“Cluster”。这两个下拉列表都是相关的。例如,如果我在 State 中选择 Kerala,那么 Cluster 将填充它的重要城市和 dist。像 Pathnamthitta、calicut、palakad 等。
所以,我想要的是,我想在 State 和 Cluster ddl 中都提供一个选项“Select All”。
我经历过:
How to select all records in a DropDownList
http://www.w3schools.com/aspnet/control_dropdownlist.asp
http://forums.asp.net/t/1221977.aspx?Adding+a+Select+all+option+to+a+drop+down+list
但它们都不适合我。我可以选择所有状态,但不能在另一个 ddl 上填充集群值。
这是我的“状态”ddl 代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByStateInnerJoin();
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "state1";
DropDownList1.DataValueField = "state1";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select State--", "0"));
DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}
}
此代码用于“集群”
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByClusterInnerJoin(DropDownList1.SelectedValue);
DropDownList2.DataSource = dt;
DropDownList2.DataTextField = "cluster";
DropDownList2.DataValueField = "cluster";
DropDownList2.DataBind();
}
这是对 State ddl 的查询:
SELECT DISTINCT tbl_site_details.state1
FROM tbl_site_details INNER JOIN
tbl_energy_report ON tbl_energy_report.Site_ID = tbl_site_details.site_id
这是集群 ddl 的查询:
SELECT tbl_site_details.cluster
FROM tbl_site_details INNER JOIN
tbl_energy_report ON tbl_energy_report.Site_ID = tbl_site_details.site_id
WHERE (tbl_site_details.state1 = @state1)
最佳答案
那是因为在ddl1_selectedindexchanged方法上用dt重新绑定(bind)了ddl2。
在您的 page_load 上评论“DropDownList2.Items.Insert”
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByStateInnerJoin();
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "state1";
DropDownList1.DataValueField = "state1";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select State--", "0"));
//COMMENT THIS LINE
//DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}
}
并将其移至您的 dropdownlist1_selectedindexchanged 事件。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet3TableAdapters.tbl_energy_reportTableAdapter state;
state = new DataSet3TableAdapters.tbl_energy_reportTableAdapter();
DataTable dt = new DataTable();
dt = state.GetDataByClusterInnerJoin(DropDownList1.SelectedValue);
DropDownList2.DataSource = dt;
DropDownList2.DataTextField = "cluster";
DropDownList2.DataValueField = "cluster";
DropDownList2.DataBind();
//put it here
DropDownList2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select Cluster--", "0"));
}
关于c# - "Select All"两个或多个下拉列表的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718594/