日期:2014-05-18  浏览次数:21426 次

C#中的comBox无法获取TEXT值
C# code
//数据邦定ComBox控件:
            DataTable dt = new DataTable();
            string strSql = "select * from dbo.TSA";

            SqlDataAdapter adapter = new SqlDataAdapter(strSql, conbuilder.ToString());

            adapter.Fill(dt);
            cmBoxServer.DataSource = dt;
            cmBoxServer.DisplayMember = "AccountName";
            cmBoxServer.ValueMember = "AccountNo";
            cmBoxServer.SelectedValue = (object)AccountID;

//获取ComBox的相应值
            AccountID = cmBoxServer.SelectedValue.ToString();
            AccountName = cmBoxServer.Text;



不知为什么,当用户选择ComBox下接内容后,AccountID和AccountName的值都正确,若用户按ComBox默认值,并没有时,AccountID的值正确,而AccountName的值为“System.Data.DataRowView”,请问怎样解决,谢谢。


------解决方案--------------------
dubeg一下 看看cmBoxServer 中有哪些属性里的值是你想要的。
------解决方案--------------------
好像以前遇到过,忘了是怎么回事了,你这个是从网上这的方法吗?
我记得当时从网上找的,绑定高的很复杂,结果就出了这种问题;

后来之绑定一个显示的数据源,就没事了;
cmBoxServer.SelectedValue = (object)AccountID;
你这句话是做什么用呢,没见过这种做法
------解决方案--------------------
cmBoxServer.SelectedItem.Text
------解决方案--------------------
comboBox1.SelectedText
------解决方案--------------------
comboBoxFlag.SelectedItem.ToString();
------解决方案--------------------
绑定完加上这句试试
cmBoxServer.SelectedIndex=0;
------解决方案--------------------
想要获取comboBox的选中内容:

C# code
this.comboBox.SelectionItem.ToString();

------解决方案--------------------
探讨
把数据绑定的方法写在if(!IsPostBack)里

------解决方案--------------------
楼主看看你下拉列表的属性 AutoCompleteMode和 AutoCompleteSource 的值是什么,如果不是none的话,你把属性值改成none试试
------解决方案--------------------
AccountID = cmBoxServer.SelectedItem.Value.
AccountName = cmBoxServer.SelectedItem.Text;