public struct MyItem
{
public int Data; public string Text; string ToString()
{
return Text;
}
}public List<MyItem> GetPartners(int companyID)
{
List<MyItem> list = new List<MyItem>();
using (SqlConnection conn = new SqlConnection(connstr))
{
SqlCommand cmd = new SqlCommand("proc_GetPartners", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = companyID;
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
MyItem m = new MyItem();
m.Text = reader["Company"].ToString();
m.Data = Convert.ToInt32(reader["id"]);
list.Add(m);
}
}
}
return list;
}
foreach (MyItem m in list)
{
cboFriendName.Items.Add(m);
}
ComboBox里面的加载出来的是 LogisticsAgencySystemModels.MyItem 这么东西我看百度知道里有人说 显示的时候会出现 ToString() 的值我怎么弄不出来啊?各位大哥教教!在线等...
{
public int Data; public string Text; string ToString()
{
return Text;
}
}public List<MyItem> GetPartners(int companyID)
{
List<MyItem> list = new List<MyItem>();
using (SqlConnection conn = new SqlConnection(connstr))
{
SqlCommand cmd = new SqlCommand("proc_GetPartners", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = companyID;
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
MyItem m = new MyItem();
m.Text = reader["Company"].ToString();
m.Data = Convert.ToInt32(reader["id"]);
list.Add(m);
}
}
}
return list;
}
foreach (MyItem m in list)
{
cboFriendName.Items.Add(m);
}
ComboBox里面的加载出来的是 LogisticsAgencySystemModels.MyItem 这么东西我看百度知道里有人说 显示的时候会出现 ToString() 的值我怎么弄不出来啊?各位大哥教教!在线等...
{
cboFriendName.Items.Add(m.Text);
}
{
MyItem m = new MyItem();
m.Text = reader["Company"].ToString();
m.Data = Convert.ToInt32(reader["id"]);
list.Add(m);
}
这样不就行了
while (reader.Read())
{
list.Add(reader["Company"].ToString();
}
{
public int Data; public string Text; public override string ToString()
{
return Text;
}
}
cboFriendName.DataValueField = "Data";要绑定如何显示
各位,完全 理解错意思了.既然我要让cbo里面添加对象, 肯定是当用户选择某项后,我可以得到选中项的Data所以不要跟我说直接添加一个字符串进去.DisplayMember,ValueMember 不能对集合进行绑定 谢谢.
cboFriendName.DataValueField = "Data";就OK
foreach (MyItem m in list) { cboFriendName.Items.Add(m); }这方法可以不要了直接
cboFriendName.DataSource=list;
cboFriendName.DataTextField = "Text";
cboFriendName.DataValueField = "Data";
cboFriendName.DataBind();//若是WebForm
{
public int Data; public string Text; public override string ToString()
{
return Text;
}
}
12楼同志 如3楼同志所说,只需要加override 关键字即可.
WinForm下改成这样
cboFriendName.DisplayMember = "Text";
cboFriendName.ValueMember = "Data";