我在网格中有一个DropDownList,我有一个foreach循环,循环遍历一个Query并匹配数据并填充下面的每一行的下拉列表。但它将数据全部放在同一个下拉列表中。因此,第1行,第2行,第3行等都会合并到下拉列表中。我试图在第1行中这样做.dropdlownlist有第1行和第2行的信息,dropdownlist有第2行的信息,依此类推。
到目前为止,我有这个:
protected void grdExceptions_ItemDataBound(object sender, GridItemEventArgs e)
{
var linqContext = new DataClassesDataContext();
var sessionleads = from q in linqContext.Leads where q.SessionID == SessionId orderby q.RowIndex select q;
if (e.Item is GridDataItem)
{
foreach(var p in sessionleads)
{
var lQuery = (from a in gServiceContext.CreateQuery("account") where (a["name"].Equals(p.AccountName) &&
a["address1_postalcode"].Equals(p.ZipCode) &&
a["address1_stateorprovince"].Equals(p.State)) ||
(a["address1_line1"].Equals(p.Address1) &&
a["address1_postalcode"].Equals(p.ZipCode) &&
a["address1_city"].Equals(p.City))
select new
{
Name = !a.Contains("name") ? string.Empty : a["name"]
});
foreach (var a in lQuery)
{
((e.Item as GridDataItem)["Account"].FindControl("AccountList") as DropDownList).Items.Add(new ListItem(a.Name.ToString()));
}
}
}
}
我在Grid的ItemTemplate中有一个DropDownlist。因此,对于第一行,我希望找到分配给第一行下拉列表的匹配项,对于第二行,我希望匹配第二行中的下拉列表等等。
我做错了什么?
谢谢!
答案 0 :(得分:0)
当ItemDataBound为每个新行触发时,似乎你期望SessionId以某种方式变得不同,但它只是保持不变。您是否有其他可以添加到where子句的过滤条件?或者某种方式为每个新行更新SessionId?