C# 如何使用单独的逗号(,)绑定下拉列表中的两列值
我有一个asp.net应用程序,因为我使用的是ado.net实体框架,我想在其中绑定下拉列表中的两列。例如: 在数据库中,他们的两列名为First_name,Last_name。我希望这两列值使用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
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