Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用单独的逗号(,)绑定下拉列表中的两列值_C#_Asp.net_Entity Framework - Fatal编程技术网

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

C# 如何使用单独的逗号(,)绑定下拉列表中的两列值,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我有一个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.Clie

我有一个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();
    }
}
试试这个

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

您可以做的是在对象上定义一个自定义特性,该特性可为您执行以下操作:

为清晰显示您的对象而进行编辑

你会写这样的东西

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

}
这将为您提供
客户端
实体上的只读属性
全名

然后您可以执行以下操作

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
,因为它不需要枚举整个集合。

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

这也限制了select和其他开销中要完成的数据量

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

for(int i=0;i
您可以用它做得最好。

protectedvoid BindSalesOrganization()
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();
    }
}
{ IList objCustomerList=(新CustomerFacade()).GetAllSalesOrgByUserCode(SessionManager.UserCode); if(objCustomerList!=null&&objCustomerList.Count>=0) { ddlSalesOrg.Items.Clear(); ddlSalesOrg.DataSource=objCustomerList; ddlSalesOrg.DataTextField=“SalesOrganization”; ddlSalesOrg.DataValueField=“SalesOrgCode”; ddlSalesOrg.DataBind(); } }
您使用的是哪个版本的实体框架?哪个版本的.NET?您好,谢谢您的回复,我如何找到DataTextField和DataValueField请告诉我。
ListItem
承包商的第一个参数是项目文本,第二个参数是项目值,因此您不需要aspx中的
DataTextField
DataValueField
属性
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