(C#)WPF类似下拉框的自动完成源,数据是从数据库查询得出动态数据
来源:互联网 发布:python httplib 编辑:程序博客网 时间:2024/06/05 07:37
1、sql数据库
--查询全国的车次,用于车次下拉框的模糊查询
if @type='cbo_TrainAll'
begin
select AllTrain=stuff
(
(select '@'+rtrim(train_name) from t_train_list where no_running=0 for xml path('')),1,1,'')
end
2、服务端查询数据库代码
//查询全国的车次,用于车次下拉框的模糊查询
public DataSet cbo_TrainAll()
{
DataSet ds = new DataSet();
SqlParameter[] mySqlParameter =
{
new SqlParameter("@type",SqlDbType.NChar)
};
mySqlParameter[0].Value = "cbo_TrainAll";
DataTable myDataTable = myDAL.QueryDataTable("wpfComboboxBingding", mySqlParameter);
ds.Tables.Add(myDataTable);
return ds;
}
3、页面设计,使用文本框、按钮、listbox组成
4、页面的.CS代码
//建立一个属性表,用于装载数据
internal class StationModel
{
public string KeyID { set; get; } // 车站ID
public string Name { set; get; } // 名称
public string PYString { set; get; } // 名称拼音
public string ShortPYString { set; get; } // 拼音简码
}
BLL_TrainWay.BLL_TrainWayClient bll_TrainWay = new BLL_TrainWay.BLL_TrainWayClient();
BLL_BingdingCombobox.BLL_BingdingComboboxClient bll_Cbo = new BLL_BingdingCombobox.BLL_BingdingComboboxClient();
internal List<StationModel> TrainStationList = new List<StationModel>();
TextBox txt;
//窗口的Loaded加载事件
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
//查找出数据库所有的列出信息,并加入到list集合里
DataTable dt = bll_Cbo.cbo_TrainAll().Tables[0];
string station_names = dt.Rows[0]["AllTrain"].ToString().Trim();
TrainStationList = new List<StationModel>();
string[] citys = station_names.Split('@');
if (citys != null)
{
for (int i = 0; i < citys.Length; i++)
{
StationModel info = new StationModel();
info.Name = citys[i];
TrainStationList.Add(info);
}
}
}
#region 下拉框自动完成源
//列车车次文本框改变事件
private void txt_TrainName_TextChanged(object sender, TextChangedEventArgs e)
{
//设置一个位置坐标,用于调整listbox的位置
Thickness margin = new Thickness(546, 37, 0, -100);
//获取文本框的值
string str = txt_TrainName.Text.Trim();
//list_TrainName-listbox的控件名称,TrainStationList声明的集合变量
setTrainText(str, margin, list_TrainName, TrainStationList);
}
//设置列車listbox的内容
internal void setTrainText(string str, Thickness margin, ListBox list_TrainName, List<StationModel> statt)
{
List<StationModel> list = statt.FindAll((station) => {
return station.Name.IndexOf(str) > -1;
});
if (list.Count > 0)
{
list_TrainName.Margin = margin;
list_TrainName.ItemsSource = list;
list_TrainName.DisplayMemberPath = "Name";
Panel.SetZIndex(list_TrainName, 99);
list_TrainName.Height = 100;
list_TrainName.Visibility = Visibility.Visible;
}
else
{
list_TrainName.Visibility = Visibility.Hidden;
Panel.SetZIndex(list_TrainName, 0);
list_TrainName.ItemsSource = null; //清空数据源
}
}
//listbox鼠标选中左边单击事件
private void list_TrainName_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
try
{
//获取选中的数据,绑定到文本框
txt_TrainName.Text = (list_TrainName.SelectedItem as StationModel).Name;
//将listbox隐藏
this.list_TrainName.Visibility = Visibility.Hidden;
}
catch { }
}
//按钮单击事件,显示全部列出信息
private void btn_trainName_Click(object sender, RoutedEventArgs e)
{
Thickness margin = new Thickness(546, 37, 0, -100);
btn_GetSiteName(margin, list_TrainName, TrainStationList);
}
//将数据显示到listbox上面
internal void btn_GetSiteName(Thickness margin, ListBox list_TrainName, List<StationModel> statt)
{
list_TrainName.Margin = margin;
list_TrainName.ItemsSource = statt;
list_TrainName.DisplayMemberPath = "Name";
Panel.SetZIndex(list_TrainName, 99);
list_TrainName.Visibility = Visibility.Visible;
}
#endregion阅读全文
2 0
- (C#)WPF类似下拉框的自动完成源,数据是从数据库查询得出动态数据
- 从数据库里查询数据,显示在jsp的下拉列表框里
- WPF实现TextBox输入文字后自动弹出数据(类似百度的输入框)
- WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框)
- 下拉菜单从数据库读取数据动态生成
- 从数据库查询的多表数据中生成下拉树
- 从数据库动态添加数据到下拉框(select)中
- 动态二级下拉框联动(二级数据从数据库中获取)
- jquery实现搜索框自动补全功能,类似google搜索引擎,数据是用Ajax从后台获得
- 类似数据库的数据容器
- (C#)WPF根据设计的数据动态生成火车席位
- Ajax应用 1.自动查询(验证用户名存在) 2.按需取数据(动态刷新下拉列表)
- 使用JDBC完成动态验证、采用MVC完成数据查询
- EasyUI从数据库获取数据填充下拉框
- easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET
- 下拉数据集选择数据后结果报表自动查询
- AutoCompleteExtender实现自动完成功能(从数据库中读取数据 )
- JSP实现下拉框的内容显示的是数据库中的数据
- 访问者模式【Visitor Pattern】
- 并查集模板题 HDU1272 小希的迷宫
- linux find 命令忽略某个或多个子目录的方法 【转】
- JS学习笔记(1)介绍
- 使用Python实现简单爬虫(慕课网学习笔记)
- (C#)WPF类似下拉框的自动完成源,数据是从数据库查询得出动态数据
- scala 是多范式的
- RxJava 1.x 学习
- 07 WebGL 着色器编程语言GLSL ES的取样器(纹理)
- glCullFace与glPolygonMode
- 内存对齐
- java.1
- 创新、变革以及你的有生之年
- 对于低版本浏览器的兼容器