【问题标题】:Dropdown lists in a repeater are all updating to the same value中继器中的下拉列表都更新为相同的值
【发布时间】:2014-06-06 16:24:11
【问题描述】:

简而言之:转发器中的所有下拉列表都更新为相同的值。

我有一个中继器。每个项目都包含另一个中继器,它显示多个用户及其费用和首选货币。

repeater_ItemDataBound 事件中,我找到并填充了txtcurrency,图像显示这些因用户而异。 我还填充了 ddlPreferredCurrency 下拉列表,然后选择适当的值。

问题是 - 无论最后一个用户的货币设置为什么,所有 DropDownLists 都会更改为该值,而不仅仅是当前值。

奇怪的是,货币 TextBoxes 保存它们各自的值,但每个 DropDownList 的 ListItems 似乎是相关的......帮助??

这是我的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;
            }

        }            
    }

【问题讨论】:

    标签: c# asp.net drop-down-menu repeater


    【解决方案1】:

    您在下拉列表中添加了错误的项目。

    ddlPreferredCurrency.Items.Add(li);
    

    应该是

    ddlPreferredCurrency.Items.Add(ddli);
    

    【讨论】:

    • 这是我多么喜欢这个网站的一个很好的例子...我是一个独立工作的开发人员,如果没有一双新鲜的眼睛,你可以一遍又一遍地看代码怀念最简单的事情 - 非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多