刚开始用.net 的winform开发,发现好些控件都很难用,可能是不熟悉的原因吧,这不,一个给ComboBox添加项的问题就搞的我很头疼,我要同时给一个项添加名字和值,怎么都没法加,查了查资料,又自己汇总测试了下,终于全部搞定了,现把完整的方案写下。
用comboBox的数据绑定的方法很简单,建一个数据源,绑定到ComboBox上,然后指定DisplayMember和 ValueMember就可以了。但是感觉好不灵活哦,如果我要在ComboBox上再添加一项,那怎么办?Web里面有ListItem, winform里面怎么没有了?感觉真是不爽,网上找了个方法,自己添加一个ListItem类,然后add到items里面,感觉还不错,有点象web 里面的用法了,可是问题又来了,添加的第一项怎么变成类名了?不是我给它赋的名字,其他项又都没有问题。于是又查到说,“因为combobox的 Item.ADD(一个任意类型的变量),而显示的时候调用的是这个变量的ToString()方法,如果这个类没有重载ToString(),那么显示的结果就是命名空间 + 类名”,于是加上重载的ToString()方法,好了,至此,我终于可以很方便的来给ComboBox和ListBox添加项了。
首先添加类ListItem:
///
/// 选择项类,用于ComboBox或者ListBox添加项
///
public class ListItem
{
private string id = string.Empty;
private string name = string.Empty;
//可以根据自己的需求继续添加,如:private Int32 m_Index;
public ListItem()
{ }
public ListItem(string sid, string sname)
{
id = sid;
name = sname;
}
public override string ToString()
{
return this.name;
}
public string ID
{
get
{
return this.id;
}
set
{
this.id = value;
}
}
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
}
然后在程序中使用:
ListItem item = new ListItem(“我是值”, “我是名字”);
this.lbChoiceRoom.Items.Add(item);
this.lbChoiceRoom.DisplayMember = “Name”;
this.lbChoiceRoom.ValueMember = “ID”;
或者:
for (int i = 0; i < 7; i++)
{
ListItem li = new ListItem(); //还可以直接添加ListItem li = new ListItem("id","name")
li.ID = i.ToString();
//[li.Index = i;]
li.Name = i.ToString();
comboBox1.Items.Add(li);
}
然后:
MessageBox.Show(((ListItem)comboBox3.SelectedItem).ID.ToString());
就可以取values了
DropDownList 和Combox 数据绑定的常用方法
web中DropDownList绑定数据源的几种方式
第一种
this.ddltype.DataTextField = “btName”;//显示的值
this.ddltype.DataValueField = “btId”;//获取dropdownlist中的值
ddltype.DataSource = service.GetBusinessTypeAll(“”);
this.ddltype.DataBind();
第二种
DataTable dt_GetBusinessName = service.GetBusinessTypeAll(“”);
//表中无数据的话直接返回
if (dt_GetBusinessName == null)
return;
for (int i = 0; i < dt_GetBusinessName.Rows.Count; i++)
{
ddltype.Items.Add(new ListItem(dt_GetBusinessName.Rows[i]["btName"].ToString().Trim(),//显示的值
dt_GetBusinessName.Rows[i]["btId"].ToString().Trim()));
}
ddltype.Items.Add(new ListItem("全部", "-1"));
ddltype.Text = "全部";
如何选中DropDownList1中的值用
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.TextBox1.Text = this.DropDownList1.SelectedItem.Text.ToString();
}
windows中combox的手写数据绑定
第一种:
cCombox1.DisplayMember = “btName”;//显示的值
cCombox1.ValueMember = “btId”;
cCombox1.DataSource = _manageService.GetBusinessTypeAll(this.UserInfo.uNote1);
第二种:
DataTable dt_GetStateByName = _financeService.GetStateByNam(UserInfo.uNote1);
//表中无数据的话直接返回
if (dt_GetStateByName == null)
return;
for (int i = 0; i < dt_GetStateByName.Rows.Count; i++)
{
cbType2.Items.Add(new ListItem(dt_GetStateByName.Rows[i]["osState"].Trim(),
dt_GetStateByName.Rows[i]["osName"].ToString().Trim()));//显示的值
}
cbType2.Items.Add(new ListItem("-1", "全部"));
cbType2.Text = "全部";
[来源:http://blog.csdn.net/kingmax54212008/article/details/7283344]
分类目录
- arch/management (17)
- computer (38)
- java/j2ee (305)
- lnmpa (237)
- mac/iphone/ipad/android (11)
- mysql/oracle/postgresql (126)
- os/software (74)
- other (518)
- python (6)
- redis/memcached/mongo (31)
- sitebuild (143)
随便看看
标签云
程序员 创业 人生箴言 eclipse 快捷键 术语 索引 unix命令 vim wordpress java学习笔记 环境变量 oracle内置函数 index 人生 数据类型 nohup tuxedo mysql学习笔记 MS-DOS命令 servlet spring 职场进阶 职业进阶 服务器选购 服务器选型 apache JPA MongoDB 注解 tomcat 子女教育 jquery maven JVM aix命令 网络营销 java异常 seo 人生规划 关键字 css 网络推广 struts 系统优化 成长 frame iframe bluehost jdbc select 我的信仰 oracle函数 cookie HashMap 站长工具 乱码 ArrayList secureCRT jsp session tail find halt 事务 oracle单记录函数 算法 URL window table javascript操作表单元素 String 字符串处理 健康 http 域名 情感 more google A记录 域名解析 netstat 弹出对话框 弹出窗口 框架集 框架 excel 字符串 javascript函数 showModalDialog nginx number 数组 sql frameset 开源程序 java数组 软件 oracle服务友情链接
收藏链接