【问题标题】:C# - Dropdown in repeater not workingC# - 中继器中的下拉菜单不起作用
【发布时间】:2018-04-19 13:11:39
【问题描述】:
protected void LoadRecords()
{
    List<PO.viewSO_Result> viewpolist = objDb.viewSO().ToList();

    CustomerRepeater.DataSource = viewpolist;
    CustomerRepeater.DataBind(); 
}

这是 .aspx 代码:

<asp:Repeater ID="CustomerRepeater" runat="server" >
    <ItemTemplate>
        <tr class="odd gradeX" > 
            <td><%# Eval("Supplier_order_id_pk") %></td> 
            <td>
                <asp:DropDownList runat="server" ID="dropdown1">
                    <asp:ListItem Text='<%# Eval("Supplier_order_id_pk") %>' Value='<%# Eval("Supplier_order_id_pk") %>'></asp:ListItem>
                </asp:DropDownList>
            </td> 
        </tr>
    </ItemTemplate>
</asp:Repeater>

我的 DropDown 不起作用或无法获取值。这是错误信息:

只有具有 DataBinding 事件的对象才支持数据绑定表达式。 System.Web.UI.WebControls.ListItem 没有 DataBinding 事件

我需要用这种方式在repeater中创建DropDown。

【问题讨论】:

  • 添加 urgent 无助于加快速度。我们没有与您签订 SLA。而且你不能将数据绑定到ListItem,因为错误状态
  • 帮助我如何使用上面的 c# 函数和 aspx 文件代码在转发器中创建下拉列表。

标签: c# asp.net .net asp.net-mvc-4 visual-studio-2012


【解决方案1】:

试试这个

<asp:Repeater ID="CustomerRepeater" runat="server" OnItemDataBound="CustomerRepeater_ItemDataBound">
<ItemTemplate>
    <tr class="odd gradeX" > 
        <td> <asp:Label ID="lblOrderID" runat="server" Text='<%# Eval("Supplier_order_id_pk") %>'></asp:Label></td> 
        <td>
            <asp:DropDownList runat="server" ID="dropdown1">

            </asp:DropDownList>
        </td> 
    </tr>
</ItemTemplate>

protected void CustomerRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            DropDownList ds = (DropDownList)e.Item.FindControl("dropdown1");
            ds.Items.Add((e.Item.FindControl("lblOrderID") as Label).Text);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2017-05-25
    相关资源
    最近更新 更多