Asp.net 一个DropDownList不会激发SelectedIndexChanged,但另一个会激发

Asp.net 一个DropDownList不会激发SelectedIndexChanged,但另一个会激发,asp.net,drop-down-menu,Asp.net,Drop Down Menu,我有一个问题,我只是能够理解为什么会发生 情况是,我有两个下拉列表,都是以相同的方式设置的 <asp:DropDownList ID="DocumentLink" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DocumentLink_Changed"> </asp:DropDownList> <asp:DropDownList I

我有一个问题,我只是能够理解为什么会发生

情况是,我有两个下拉列表,都是以相同的方式设置的

<asp:DropDownList ID="DocumentLink" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DocumentLink_Changed">
                </asp:DropDownList>
                <asp:DropDownList ID="PageLink" runat="server" AutoPostBack="true" OnSelectedIndexChanged="PageLink_Changed">
                </asp:DropDownList>
在名为“PageLink”的下拉列表中,事件处理程序将触发。但是,对于“DocumentLink”,事件处理程序没有。在调试中,我看到页面加载被触发,但事件在页面加载后会停止,并且从未进入DocumentLink\u Changed

有趣的是,如果我使用telerik radComboBox代替DropDownList,使用相同的设置,它确实有效

<telerik:RadComboBox ID="DocumentLink" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DocumentLink_Changed">
                </telerik:RadComboBox>
不幸的是,我需要为我的项目使用Dropdownlists

这可能是什么原因造成的

更新

我已经使用了正在工作的dropdownlist,并对不工作的dropdownlist使用了LINQ绑定。结果是PageLink下拉列表的行为开始与“DocumentLink”下拉列表的行为类似。这让我相信问题可能出在绑定方法上,但两者非常相似,我确实在dropdownlist中看到了结果

这是我的装订

if (selectedValue == 3)
            {
                DropDownList select = lvLinks.InsertItem.FindControl("PageLink") as DropDownList;
                List<IPW_Links_get_document_listResult> getList = (from i in lqContext.IPW_Links_get_document_list(0, "my stuff") select i).ToList();
                select.DataSource = getList;
                select.DataTextField = "DocumentName";
                select.DataValueField = "FolderPath";
                select.DataBind();

            }
            if (selectedValue == 2)
            {
                DropDownList select = lvLinks.InsertItem.FindControl("PageLink") as DropDownList;
                List<IPW_Links_get_available_pagesResult> getList = (from i in lqContext.IPW_Links_get_available_pages(PortalId) select i).ToList();
                select.DataSource = getList;
                select.DataTextField = "TabName";
                select.DataValueField = "TabPath";
                select.DataBind();
            }   
if(selectedValue==3)
{
DropDownList select=lvLinks.InsertItem.FindControl(“PageLink”)作为DropDownList;
List getList=(从lqContext.IPW_Links_get_document_List(0,“我的东西”)中的i选择i.ToList();
select.DataSource=getList;
选择.DataTextField=“DocumentName”;
select.DataValueField=“FolderPath”;
select.DataBind();
}
如果(selectedValue==2)
{
DropDownList select=lvLinks.InsertItem.FindControl(“PageLink”)作为DropDownList;
List getList=(从lqContext.IPW_Links_get_available_pages(PortalId)中的i选择i).ToList();
select.DataSource=getList;
select.DataTextField=“TabName”;
select.DataValueField=“TabPath”;
select.DataBind();
}   

请检查PageLoad事件中是否有任何语句会改变DropDownList。如果页面加载事件中有数据绑定语句或选择重置语句,请确保它位于If not ispostback条件代码段下。

谢谢您的帮助,但情况似乎并非如此,因为两个下拉列表中的一个执行相同的工作流,一个工作,另一个不工作t@MarkHollas从您发布的代码来看,似乎您正在使用基于变量“SelectedValue”的两组数据绑定“PageLink”下拉列表。是否可以为页面加载粘贴整个代码。我还建议启用跟踪,并执行几个trace.write()语句来检查哪些行已经执行。您可以通过访问apppath/trace.axdAlso查看绑定数据中是否有重复值。
protected void DocumentLink_Changed(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
if (selectedValue == 3)
            {
                DropDownList select = lvLinks.InsertItem.FindControl("PageLink") as DropDownList;
                List<IPW_Links_get_document_listResult> getList = (from i in lqContext.IPW_Links_get_document_list(0, "my stuff") select i).ToList();
                select.DataSource = getList;
                select.DataTextField = "DocumentName";
                select.DataValueField = "FolderPath";
                select.DataBind();

            }
            if (selectedValue == 2)
            {
                DropDownList select = lvLinks.InsertItem.FindControl("PageLink") as DropDownList;
                List<IPW_Links_get_available_pagesResult> getList = (from i in lqContext.IPW_Links_get_available_pages(PortalId) select i).ToList();
                select.DataSource = getList;
                select.DataTextField = "TabName";
                select.DataValueField = "TabPath";
                select.DataBind();
            }