C# 如何将LINQ数据绑定到dropdownlist
此代码的最后两行无法正常工作-结果将从LINQ查询返回。我只是不知道如何将结果中指示的列成功绑定到dropdownlist的textfield和valuefield:C# 如何将LINQ数据绑定到dropdownlist,c#,asp.net,linq,ado.net,C#,Asp.net,Linq,Ado.net,此代码的最后两行无法正常工作-结果将从LINQ查询返回。我只是不知道如何将结果中指示的列成功绑定到dropdownlist的textfield和valuefield: protected void BindMarketCodes() { List<lkpMarketCode> mcodesList = new List<lkpMarketCode>(); LINQOmniDataContext db = new LINQO
protected void BindMarketCodes()
{
List<lkpMarketCode> mcodesList = new List<lkpMarketCode>();
LINQOmniDataContext db = new LINQOmniDataContext();
var mcodes = from p in db.lkpMarketCodes
orderby 0
select p;
mcodesList = mcodes.ToList<lkpMarketCode>();
//bind to Country COde droplist
dd2.DataSource = mcodesList;
dd2.DataTextField = mcodesList[0].marketName;
dd2.DataValueField = mcodesList[0].marketCodeID.ToString();
}
见下面修订的代码
protected void BindMarketCodes()
{
using (var dataContext = new LINQOmniDataContext()) {
//bind to Country COde droplist
dd2.DataSource = from p in dataContext.lkpMarketCodes
orderby p.marketName
select new {p.marketCodeID, p.marketName};
dd2.DataTextField = "marketName";
dd2.DataValueField = "marketCodeID";
dd2.DataBind();
}
}
谢谢你添加这个。出于您概述的原因,我更喜欢您的方法。如何以这种方式向dd2添加属性?您将如何在视图中引用它?我正在寻找一种方法来解决这个确切的问题。我的在没有ToList的情况下坏了。在我添加dd2.DataBind之前,它无法工作;正如Andrew_Robinson所建议的那样,这个解决方案太复杂了,而且可以通过Andreer给出的更容易理解的答案来实现
protected void BindMarketCodes()
{
using(var dc = new LINQOmniDataContext())
{
dd2.DataSource = from p in db.lkpMarketCodes
orderby 0
select new {p.marketName, p.marketCodeID };
dd2.DataTextField = "marketName";
dd2.DataValueField = "marketCodeID";
dd2.DataBind();
}
}
// no need to use ToList()
// no need to use a temp list;
// using an anonymous type will limit the columns in your resulting SQL select
// make sure to wrap in a using block;
DropDownList ddl_RouteLocation = (DropDownList)e.Row.FindControl("ddl_RouteLocation");
ddl_RouteLocation.DataSource = dtLocation;--(dtlocation i have return method of linq in dtlocation)
ddl_RouteLocation.DataTextField =dtLocation.Rows[0]"LocationName"].ToString();
ddl_RouteLocation.DataValueField =dtLocation.Rows[0]["LocationId"].ToString();
ddl_RouteLocation.DataBind();
ddl_RouteLocation.Items.Insert(0, new ListItem("--Select--", "0"));