gpt4 book ai didi

c# - 用户控件事件处理程序在回发时丢失

转载 作者:行者123 更新时间:2023-11-30 13:05:58 24 4
gpt4 key购买 nike

我有一个名为 LeftMenu 的菜单用户控件,它有一个链接项的项目符号列表。它在 ascx 页面上是这样的:

<asp:BulletedList ID="PublisherList" DisplayMode="LinkButton" OnClick="PublisherList_Click" cssClass="Menu" runat="server"></asp:BulletedList>

我在 if(!isPostBack)

下的 page_load 中对列表进行数据绑定(bind)

我在加载控件的页面上遇到问题。当页面首次加载时,事件处理程序将触发。但是,当页面回发时它不再触发,在 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。

最佳答案

听起来您可能会失去点击,因为您没有对 PostBack 上的列表进行数据绑定(bind)。因此,回发试图引用不存在的控件(特定项目符号列表项)。

您应该尝试在 PostBack 上再次绑定(bind)列表,看看是否能解决您的问题。但是,真正应该发生的是 LeftMenu 和 BulletedList 应该将它们的信息存储到 ViewState 中,以便您可以确保在初始页面加载时向用户显示的数据与 PostBack 正在处理和使用的数据相同.

关于c# - 用户控件事件处理程序在回发时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com