第一个下拉框里面选择一个 后面第二个下拉框显示前面第一个下拉框对应的数据
winform combobox可以用DetaView过滤出选择一级对应二级的数据,设置下数据源就行,示例如下
using System;
using System.Windows.Forms;
using System.Data;
namespace WindowsFormsApp7
{
public partial class Form1 : Form
{
DataTable dtPro, dtCity;
private void Form1_Load(object sender, EventArgs e)
{
comboBox2.DisplayMember = comboBox1.DisplayMember = "name";//显示name
comboBox2.ValueMember = comboBox1.ValueMember = "id";//值
comboBox1.DataSource = dtPro;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
DataView dv = dtCity.DefaultView;
dv.RowFilter = "pid='"+comboBox1.SelectedValue+"'";//过滤
comboBox2.DataSource = dv;
}
public Form1()
{
InitializeComponent();
//数据模拟
dtPro = new DataTable();
dtCity = new DataTable();
dtPro.Columns.Add("id");
dtPro.Columns.Add("name");
dtCity.Columns.Add("id");
dtCity.Columns.Add("pid");
dtCity.Columns.Add("name");
dtPro.Rows.Add("", "请选择省");
dtPro.Rows.Add("1", "北京");
dtPro.Rows.Add("2", "上海");
dtPro.Rows.Add("3", "广西");
dtCity.Rows.Add("1", "1", "北京市");
dtCity.Rows.Add("2", "2", "上海市");
dtCity.Rows.Add("3", "3", "南宁市");
dtCity.Rows.Add("4", "3", "柳州市");
dtCity.Rows.Add("5", "3", "桂林市");
}
}
}
有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~
思路:
1.在第一个下拉框设置change事件,选择第一个下拉框后传ID给事件函数。
2.获取ID后通过ajax异步传输到后台,查询符合条件的数据,更新到第二个下拉框。
回答:这不明细表吗,简单通过控件传值即可实现(但还真不是下拉框),截图如下:
设置两个数据源,其中一个的WHERE 语句,设置某个字段为另一个控件值