如何在下拉列表中用单独的逗号(,)绑定两列值

本文关键字:绑定 两列 下拉列表 单独 | 更新日期: 2023-09-27 18:00:25

我有一个asp.net应用程序,因为我使用的是ado.net实体框架,我想在其中绑定下拉框中的两列。例如:

在数据库中,他们的两列First_name,Last_name。我希望使用C#将这两列的值放在一个下拉列表中。

如何做到这一点?

public void BindClients()
{
    //To Bind the Client Names for Searching Option
    var ddlclientnames = (from ddl in mortgageentity.Clients select ddl).ToList();
    if (ddlclientnames.Count() > 0)
    {
        ddlsearchclient.DataSource = ddlclientnames;
        ddlsearchclient.DataValueField = "Client_ID";
        ddlsearchclient.DataTextField = "LastName";
        ddlsearchclient.DataBind();
    }
}

如何在下拉列表中用单独的逗号(,)绑定两列值

您可以在Object上定义一个自定义属性来为您执行此操作:

为使对象清晰而编辑

你会写一些类似的东西

public partial class Clients
{
    public string FullName
    {
       get { return String.Format("{0}, {1}", LastName, FirstName); }
    }
}

这将为Clients实体提供只读属性FullName

然后你可以做以下

public void BindClients()
{
    //To Bind the Client Names for Searching Option
    var ddlclientnames = (from ddl in mortgageentity.Clients select ddl).ToList();
    if (ddlclientnames.Any)
    {
        ddlsearchclient.DataSource = ddlclientnames;
        ddlsearchclient.DataValueField = "Client_ID";
        ddlsearchclient.DataTextField = "FullName";
        ddlsearchclient.DataBind();
    }
}

我还建议使用Any方法而不是ddlclientname.Count > 0,因为它不需要枚举整个集合。

除非你经常使用全名,否则我建议在你的选择中使用匿名类型。

这也限制了将在选择和其他开销中完成的数据量。

var ddlclientnames = (from ddl in mortgageentity.Clients 
                select new { id = ..., FullName = FirstName + Lastname}.ToList();

尝试这个

    ddl.Items.Clear();
    foreach (var item in myCollection)
    {
        ddl.Items.Add(new ListItem(item.FirstName + "," + item.LastName, item.ID));
    }

DataSet ds=MyDataSet();

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            dropLojas.Items.Add(ds.Tables[0].Rows[i]["COLUNA1"].ToString() + ds.Tables[0].Rows[i]["COLUNA2"].ToString() + ds.Tables[0].Rows[i]["COLUNA3"].ToString());
            dropLojas.DataValueField = ds.Tables[0].Rows[i]["COLUNA1"].ToString();
        }

你可以用这个做得最好。

protected void BindSalesOrganization()
{
    IList<Customer> objCustomerList = (new CustomerFacade()).GetAllSalesOrgByUserCode(SessionManager.UserCode);
    if (objCustomerList != null && objCustomerList.Count >= 0)
    {
        ddlSalesOrg.Items.Clear();
        ddlSalesOrg.DataSource = objCustomerList;
        ddlSalesOrg.DataTextField = "SalesOrganization";
        ddlSalesOrg.DataValueField = "SalesOrgCode";
        ddlSalesOrg.DataBind();
    }
}
CREATE PROCEDURE [dbo].[sp_GetAllSalesOrgsByUserCode]                                    
@UserCode VARCHAR(50)                                          
AS                                          
BEGIN                            
SELECT S.code,'[' +  S.Code + '] '+ S.[Description]   AS description  FROM tblSalesOrganization S         
WHERE S.IsActive=1           
END