在下拉列表中绑定两列值

本文关键字:两列 下拉列表 绑定 | 更新日期: 2023-09-27 18:29:12

我使用asp.net、c#和sql server开发了在线约会应用程序。我想绑定下拉列表中的两列。在我的数据库表中有两列MobileNo和LandNo。我希望使用C#和asp.net将这两列的值放在一个下拉列表中。例如:

Mobileno:97456874532,7523684521
Landno:0886075123,0886035123

下拉结果:

97456874532
7523684521
0886075123
0886035123

在下拉列表中绑定两列值

这是您想要为此进行的自定义。您需要在sql查询中连接列的值,或者您可以在获得集合后在代码中执行此操作。

public class ContactNumber
{
  public string MobileNo {get;set;}
  public string LandNo {get; set;}
  public string ContacNo { get {retun MobileNo +','+ LandNo;}}
}

现在从数据库中获取所有的列表

List<ContactNumber> contacno = = new List<ContactNumber>()
    {
        new ContactNumber(){ MobileNo  = 1, LandNo  = "Jessica"},
        new ContactNumber(){ MobileNo  = 2, LandNo  = "Mandy"}
    };

而不是分配您的下拉列表,即将ContactNo属性绑定到下拉列表的DataTextField属性。

为了简单起见,我不会创建自定义类型,而是依赖于像intstring这样的内置类型(任何适合您需要的类型)。在这里,我正在考虑移动&电话号码是整数,将它们添加到ADO.NET代码中,如下所示:-

public List<int> GetContactInfo()
{
    List<int> contacts = new List<int>();
    using (SqlConnection conn = new SqlConnection(CS))
    {
       using (SqlCommand cmd = new SqlCommand("select Mobileno,Landno FROM Demo", conn))
       {
           conn.Open();
           using (SqlDataReader reader = cmd.ExecuteReader())
           {
               while (reader.Read())
               {
                  contacts.Add(Convert.ToInt32(reader["Mobileno"]));
                  contacts.Add(Convert.ToInt32(reader["Landno"]));
               }
           }
        }
    }
    return contacts;
}

然后只需将此数据源添加到下拉列表中:-

myDropdown.DataSource = GetContactInfo();
myDropdown.DataBind();

我希望您将数据库中的列(mobile no)直接绑定到列表中。如果您喜欢这样做,那么只有列值绑定到列表。

如果您想绑定两个或多个列值(甚至包括您的自定义字符串),您需要在下拉列表的"OnItemBound"事件中进行管理。

在"OnItemBound"事件中,对两列值进行求值,并使用这些求值值生成一个字符串,然后将新构造的字符串分配给列表项。

它看起来像这个

Item.text="Mobileno:"+Eval("Mobileno").ToString()+","+Evaal("Landno").ToString(;

如果你发布你写的代码,我会解释清楚的。