C#中怎么获取comboBox下拉列表选中项的Tag值,急。。。。。。
我用SQL数据库连接加载了一个comboBox列表框,在开始加载的时候,我就把数据库的ID加载到了comboBox列表框的Tag值里,我现在想我选择列表里的某一项里,取出...
我用SQL数据库连接加载了一个comboBox列表框,在开始加载的时候,我就把数据库的ID加载到了comboBox列表框的Tag值里,我现在想我选择列表里的某一项里,取出comboBox当前项的Tag值。。。。不怎么怎么写代码,请那个高手帮助下。。。。?
展开
展开全部
按照你现在的做法,你保存的Tag,应该用一个符号对每个ID进行分割,如:1,2,3
string[] arrID=comboBox.Tag.ToString().Split(new string[] {','},System.StringSplitOptions.None);
string myID=arrID[comboBox.SelectIndex];
这个myID就是你想要的ID,前提是你的下拉框的值的顺序要和ID的顺序一致,否则出错。
另一个做法,把DataTable绑定到comboBox
cboDiscount.DataSource = myDataTable;//这个DataTable是你从数据库拿出来的包括ID和值
cboDiscount.ValueMember = "ID";//这对应你的字段名
cboDiscount.DisplayMember = "Name";对应你的字段名
用户选择后,你可以通过这个语句,拿到ID的值
string myID=cboDiscount.SelectedValue.ToString();
string[] arrID=comboBox.Tag.ToString().Split(new string[] {','},System.StringSplitOptions.None);
string myID=arrID[comboBox.SelectIndex];
这个myID就是你想要的ID,前提是你的下拉框的值的顺序要和ID的顺序一致,否则出错。
另一个做法,把DataTable绑定到comboBox
cboDiscount.DataSource = myDataTable;//这个DataTable是你从数据库拿出来的包括ID和值
cboDiscount.ValueMember = "ID";//这对应你的字段名
cboDiscount.DisplayMember = "Name";对应你的字段名
用户选择后,你可以通过这个语句,拿到ID的值
string myID=cboDiscount.SelectedValue.ToString();
展开全部
我个人认为
当你使用tag值的时候 是因为你需要多个值保存在Combox列表里面 只有Text和Value你不够用
所以你选择了Tag值
但这是一种错误的编程方法
combox的Item是object类型 当你给combox数据源的时候 其实combox就已经把一个完整的类型做为Item付给了combox 只不过是提供了Text和Value两个比较容易操作的对象
我想你应该是用一个DataTable当做数据源了
那么 当你选定一条记录时 你想获取这个combox的选中项的所有有关信息时
((DataRow)cbAccInfor.SelectedItem)["table列名"].ToString();
你就能得到你想要的值
当然 前提是你给的数据类型是DataTable 那每一个Item的类型就是DataRow
如果是Ilist等做数据源给Combox 你就((数据行类型)cbAccInfor.SelectedItem).类名.ToString()就行了
楼上写comboBoxItem,是没有这个类型的 combox.SelectItem是object的
当你使用tag值的时候 是因为你需要多个值保存在Combox列表里面 只有Text和Value你不够用
所以你选择了Tag值
但这是一种错误的编程方法
combox的Item是object类型 当你给combox数据源的时候 其实combox就已经把一个完整的类型做为Item付给了combox 只不过是提供了Text和Value两个比较容易操作的对象
我想你应该是用一个DataTable当做数据源了
那么 当你选定一条记录时 你想获取这个combox的选中项的所有有关信息时
((DataRow)cbAccInfor.SelectedItem)["table列名"].ToString();
你就能得到你想要的值
当然 前提是你给的数据类型是DataTable 那每一个Item的类型就是DataRow
如果是Ilist等做数据源给Combox 你就((数据行类型)cbAccInfor.SelectedItem).类名.ToString()就行了
楼上写comboBoxItem,是没有这个类型的 combox.SelectItem是object的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
comboBoxItem item=this.comboBox1.selectedItem as comboBoxIte;
string tag=item.Tag.ToString();
string tag=item.Tag.ToString();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Tag属性是个基类对象类型Object,所以你可一个把任何的对象实例赋值给它,所以如果你的zidian是个对象实例的话,你可以直接:
this.comleibie.Tag = zidian;
然后在使用的时候,再把Tag属性强制类型转换成zidian对象所对应的类实例就可以了。
this.comleibie.Tag = zidian;
然后在使用的时候,再把Tag属性强制类型转换成zidian对象所对应的类实例就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询