繁体   English   中英

SelectedIndexChanged事件未在数据列表的页脚内触发

[英]SelectedIndexChanged event not firing inside the footer of a Datalist

我一直在网上和Stackoverflow上寻找这个答案,我尝试了一些但没有成功。 我的问题:我在数据列表的页脚中有一个下拉列表。 我页面的AutoEventWireup设置为true。 我的Dropdown的自动回传设置为true。 我将事件绑定到数据列表的itemcreation上。 下拉列表确实会获得回发,但不会调用SelectedIndexChanged事件中设置的函数。

创建时:

protected void dlCartItemsMonetary_ItemCreated(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Footer)
    {
        DropDownList combo = (DropDownList)e.Item.FindControl("ddlDeliveryService");
        if (combo != null)
        {
            combo.SelectedIndexChanged += new EventHandler(ddlDeliveryService_SelectedIndexChanged);
        }
    }
}

下拉列表:

<asp:DropDownList ID="ddlDeliveryService" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlDeliveryService_SelectedIndexChanged" EnableViewState="true">

它执行回发,但不输入ddlDeliveryService_SelectedIndexChanged函数。

谁能给我一些解决方法的提示?

提前致谢

解决!

我的问题以及其他许多问题是,我在每次回发时都设置了DataSource和DataBinding DataList。 一旦添加回发验证,该事件就会开始触发。 代码如下:

    if (this.Page.IsPostBack == false)
    {
        dlCartItemsMonetary.DataSource = list;
        dlCartItemsMonetary.DataBind();
    }

如果您遇到事件无法触发的相同问题,请检查您的代码是否存在相同问题!

感谢jpartjh的评论,这让我思考了页面的生命周期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM