Как связать значения двух столбцов в выпадающем списке с помощью запятой (,) - PullRequest
4 голосов
/ 23 июня 2011

У меня есть приложение asp.net, в котором я использую инфраструктуру сущностей ado.net, в которой я хочу связать два столбца в этом dropdown.for пример:

в базе данных их два столбца First_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();
    }
}

Ответы [ 6 ]

2 голосов
/ 23 июня 2011

Что вы можете сделать, это определить пользовательское свойство объекта, которое сделает это за вас:

Отредактировано для ясности ваших объектов

Вы бы написали что-то вроде

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

}

Это даст вам свойство только для чтения FullName для Clients сущности.

Тогда вы можете сделать следующее

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, поскольку он не требует перечисления всей коллекции.

0 голосов
/ 05 ноября 2018
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            
0 голосов
/ 05 ноября 2018
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();
    }
}
0 голосов
/ 28 июня 2013

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();

        }

Вы можете сделать это лучше всего.

0 голосов
/ 23 июня 2011

Если вы часто не используете Полное имя, я бы предложил использовать анонимный тип в вашем списке выбора.

Это также ограничивает объем данных, которые будут обрабатываться по вашему выбору и другие накладные расходы.

var ddlclientnames = (from ddl in mortgageentity.Clients 
                select new { id = ..., FullName = FirstName + Lastname}.ToList();
0 голосов
/ 23 июня 2011

попробуйте

    ddl.Items.Clear();
    foreach (var item in myCollection)
    {
        ddl.Items.Add(new ListItem(item.FirstName + "," + item.LastName, item.ID));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...