【发布时间】:2010-11-18 14:40:39
【问题描述】:
我有一个名为 LeftMenu 的菜单用户控件,其中包含链接项的项目符号列表。它在 ascx 页面上:
<asp:BulletedList ID="PublisherList" DisplayMode="LinkButton" OnClick="PublisherList_Click" cssClass="Menu" runat="server"></asp:BulletedList>
我在if(!isPostBack)下的page_load中绑定列表
我在加载控件的页面上遇到问题。当页面首次加载时,事件处理程序会触发。但是,当页面回发时它不再触发,并且在 IE8 中,当我调试时,我在 Visual Studio 中得到“Microsoft JScript 运行时错误:预期对象”,指向“__doPostBack('LeftMenu$PublisherList','0') 。”在 FF 中我没有收到错误,但没有任何反应。我不是动态加载控件,它是使用以下方式加载到 aspx 页面上的:
<%@ Register TagPrefix="Standards" TagName="LeftMenu" Src="LeftMenu.ascx" %>
<Standards:LeftMenu ID="LeftMenu" runat="server"/>
关于我丢失事件处理程序的任何想法?
我刚刚意识到这也发生在我拥有的另一个用户控件上。一个文本框和一个按钮,我使用默认按钮来确保按下回车键使用该按钮。 .Net 将 html 中的内容转换为:
<div id="SearchBarInclude_SearchBar" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'SearchBarInclude_QuickSearchButton')">
所以只要我在框中输入一个键,我就会在“预期对象”行出现一个 javascript 错误。看来这两个问题是相关的。
再次编辑:我想我需要澄清一下。不是我点击菜单项,在回发时找不到所选项目。我有这个带有左侧导航的搜索页面,然后页面的主要内容会导致回发。这个回发一切都很好。一旦该页面被发回,现在如果我单击左侧导航中的项目符号列表,我会收到一个 javascript 错误并且它会失败。 LeftMenu 控件的 page_init 永远不会被调用。
【问题讨论】:
标签: c# asp.net postback user-controls webforms