Ext ComboBox 默认值的设置


Ext在设置默认值时,直接用 setValue() 的方式,会导致显示的与实际需要往后台传递的值不符。下面直接贴解决问题的代码:


	var sexArray = [
		[1, "手工录入"],
		[2, "系统筛选"]
	];
	var sexRecord = Ext.data.Record.create([
	{name: "sex", type: "int", mapping: 0},
	{name: "sexName", type: "string", mapping: 1}
	]);
	var sexStore = new Ext.data.Store({
		proxy: new Ext.data.MemoryProxy(sexArray),
		reader: new Ext.data.ArrayReader({},sexRecord),
		autoLoad: true, //即时加载数据
		listeners: {
			load: function() {
				sexComBox.setValue(sexComBox.getValue());//这里是重点
			}
		}
	});
	var sexComBox = new Ext.form.ComboBox({
		triggerAction: "all",
		store: sexStore,
		displayField: "sexName",
		valueField: "sex",
		width: 120,
		mode: "local",
		emptyText: "请选择性别",
		listeners: {
			afterRender: function(combo) {
				combo.setValue(1);//同时下拉框会将与name为firstValue值对应的 text显示
			}
		}
	});

此时,下拉框显示的内容及往后台传递的真实的值相同

在C语言中,一般使用图形界面库来实现下拉框(combobox)控件。常见的图形界面库有WinAPI、GTK+、Qt等。下面以WinAPI为例,介绍如何设置combobox默认值。 1. 获取combobox句柄 首先需要获取combobox的句柄,可以通过CreateWindow函数或者GetDlgItem函数获取。CreateWindow函数用于创建新的控件,而GetDlgItem函数用于获取已经存在的控件。 例如,在使用CreateWindow函数创建combobox时,可以将返回的句柄保存在变量中: ``` HWND hwndComboBox = CreateWindow( L"COMBOBOX", L"ComboBox", WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST, 10, 10, 200, 500, hWndParent, (HMENU)ID_COMBOBOX, hInstance, NULL); ``` 2. 添加选项 通过SendMessage函数向combobox控件中添加选项。使用CB_ADDSTRING消息可以向下拉框中添加一个字符串选项,使用CB_ADDSTRING消息时需要将选项字符串作为消息参数传递。 例如,在下面的代码中,向名为hwndComboBoxcombobox中添加了三个选项: ``` SendMessage(hwndComboBox, CB_ADDSTRING, 0, (LPARAM)L"Option 1"); SendMessage(hwndComboBox, CB_ADDSTRING, 0, (LPARAM)L"Option 2"); SendMessage(hwndComboBox, CB_ADDSTRING, 0, (LPARAM)L"Option 3"); ``` 3. 设置默认值 使用SendMessage函数和CB_SETCURSEL消息可以设置combobox的默认选项。CB_SETCURSEL消息的参数为要设置为默认选项的选项的索引,从0开始。 例如,设置第二个选项为默认选项: ``` SendMessage(hwndComboBox, CB_SETCURSEL, 1, 0); ``` 以上就是在C语言中设置combobox默认值的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值