在下拉列表中绑定两列值

时间:2016-01-07 05:38:34

标签: c# asp.net sql-server

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

Mobileno:97456874532,7523684521
Landno:0886075123,0886035123

下拉结果:

97456874532
7523684521
0886075123
0886035123

3 个答案:

答案 0 :(得分:0)

这是你想为此做的一种定制,你需要在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属性。

答案 1 :(得分:0)

为了简单起见,我不会创建自定义类型,而是依赖像intstring这样的内置类型(适合您的需要)。在这里,我正在考虑移动和&amp;电话号码是intergers并将它们添加到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();

答案 2 :(得分:0)

我希望您将数据库中的列(移动号码)直接绑定到列表中。如果你喜欢这样,只有那些列值绑定到列表。

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

In&#34; OnItemBound&#34; event展开两个列值并使用这些评估值创建一个字符串,然后将新构造的字符串分配给列表项。

看起来像这样

Item.text =&#34; Mobileno:&#34; + Eval(&#34; Mobileno&#34;)。ToString()+&#34;,&#34; + Eval(&#34; Landno&#34;)。ToString();

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