简而言之:转发器中的所有下拉列表都会更新为相同的值。
我有一个转发器。每个项目包含另一个转发器,显示多个用户及其费用&首选货币。
在repeater_ItemDataBound
事件中,我找到并填充txtcurrency,图像显示这些因用户而异。
我还填充ddlPreferredCurrency下拉列表,然后选择适当的值。
问题是 - 无论最后一个用户的货币设置为什么,所有DropDownLists都会更改为该值,而不仅仅是当前值。
奇怪的是,货币TextBoxes持有它们各自的值,但每个DropDownList的ListItem似乎都是相关的......帮助??
这是我的repeater_ItemDataBound
活动:
protected void rptrLinkedUsers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
lnk_User_Pxx lup = (lnk_User_Pxx)e.Item.DataItem;
DropDownList ddlPreferredCurrency = (DropDownList)e.Item.FindControl("ddlPreferredCurrency");
foreach (ListItem li in countries)
{
ListItem ddli = new ListItem();
ddli.Text = li.Text;
ddli.Value = li.Value;
ddlPreferredCurrency.Items.Add(li);
}
if (lup != null && lup.PreferredCurrencyID != null && lup.PreferredCurrencyID != 0)
{
ListItem selectedListItem = ddlPreferredCurrency.Items.FindByValue(lup.PreferredCurrencyID.ToString());
ddlPreferredCurrency.ClearSelection();
selectedListItem.Selected = true;
}
}
}
答案 0 :(得分:0)
您将错误的项目添加到下拉列表中。
ddlPreferredCurrency.Items.Add(li);
应该是
ddlPreferredCurrency.Items.Add(ddli);