更新面板错误:在 UpdatePanel 中找不到 ID 为“xxx”的控件

2023-11-27

我有一个复合下拉日历用户控件,由文本框和日历图像以及验证控件组成。我在用户控件上公开了一个名为“TextBox”的属性,该属性返回对控件内使用的文本框的引用。这是用户输入日期的文本框。

在 ASPX 页面中,我有一个此用户控件的实例:

   <uc1:DropDownCalendar ID="dtmDateFirstEntry" runat="server"  Required="True" />

在我的后面的代码中,我想检测用户何时离开文本框,并使用 UpdatePanel 根据指定的日期引用适当的消息。

在 ASPX 页面的其他地方我有这个:

   <asp:UpdatePanel ID="upIntendedStay" runat="server">
    <ContentTemplate>
        <asp:Label ID="Label4" runat="server" Text="Update this text from server" CssClass="ErrorText"></asp:Label>
    </ContentTemplate>
    </asp:UpdatePanel>

这是我在后面的代码中所做的:

If Not Me.IsPostBack Then

    dtmDateFirstEntry.TextBox.AutoPostBack = True
    Dim trigger As New AsyncPostBackTrigger
    trigger.ControlID = dtmDateFirstEntry.TextBox.ClientID
    trigger.EventName = "onChange"
    upIntendedStay.Triggers.Add(trigger)

End If

当页面运行并查看源代码时,我会看到如下内容:

<input id="ctl00_phPageContent_dtmDateFirstEntry_txtDate" class="DefaultTextBox" name="ctl00$phPageContent$dtmDateFirstEntry$txtDate" onchange="javascript:setTimeout('__doPostBack(\'ctl00$phPageContent$dtmDateFirstEntry$txtDate\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" style="width: 112px;" type="text" value="Mar-29-2010" />
<input id="ctl00_phPageContent_dtmDateFirstEntry_imgDate" name="ctl00$phPageContent$dtmDateFirstEntry$imgDate" src="images/calendar.JPG" style="border-width: 0px;" type="image" />&nbsp;

当我运行它时,我收到此错误:

A control with ID 'ctl00_phPageContent_dtmDateFirstEntry_txtDate' could not be found for the trigger in UpdatePanel 'upIntendedStay'. 

我不认为触发控件必须位于 UpdatePanel 内。我认为这就是添加触发器的全部目的。

如何刷新此更新面板对日期用户控件中文本的更改。接下来,我将必须添加其他触发器,以从分散在页面上的其他控件触发更新面板的刷新,因此显然所有触发源都不能位于 UpdatePanel 内。

为了尝试简化情况,我在更新面板中添加了一个测试文本框,textbox1:

 <asp:UpdatePanel ID="upIntendedStay" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Label ID="Label4" runat="server" Text="Update tHis text from server" CssClass="ErrorText"></asp:Label>
    </ContentTemplate>
    </asp:UpdatePanel>

然后我得到错误:

在 UpdatePanel“upIntendedStay”中的触发器的关联控件“TextBox1”上找不到名为“onchange”的事件。

好的,我在 UpdatePanel 中添加了一个文本框 TEXTBOX1,将“ClientId”更改为“ID”,将“OnChange”更改为“TextChanged”,它就可以工作了。但如果文本框不在 UpdatePanel 内,我仍然会收到相同的错误。

触发文本框必须位于更新面板内吗?这是一个严酷的要求。

Dim trigger As New AsyncPostBackTrigger
'trigger.ControlID = dtmDateFirstEntry.TextBox.ID '<<<<<<<<<<<<<<<<<<<<<
trigger.ControlID = TextBox1.ID
trigger.EventName = "TextChanged"
upIntendedStay.Triggers.Add(trigger)

好的..当我将日历用户控件移动到更新面板时,我收到此错误:

在 UpdatePanel“upIntendedStay”中找不到触发器的 ID 为“txtDate”的控件。

嗯。显然在查找嵌入式控件时存在问题,即使它位于更新面板内,但查找未嵌入用户控件中的纯文本框却没有问题!


据我了解,文本框嵌入在用户控件 dtmDateFirstEntry 中。您不能直接使用用户控件包含的控件。如果您想将其子控件用作触发器,则用户控件必须公开其子控件的事件。

<asp:UpdatePanel ID="upIntendedStay" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="dtmDateFirstEntry" EventName="DateChanged" />
    </Triggers>
    <ContentTemplate>
        <asp:Label ID="Label4" runat="server" Text="Update tHis text from server" CssClass="ErrorText"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新面板错误:在 UpdatePanel 中找不到 ID 为“xxx”的控件 的相关文章

  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • 创建动态多维对象/数组

    我正在尝试使用 JS 创建一个多维数组 以便我可以通过 Ajax 调用 PHP 来发布一些数据 这可能很简单 但我对 JS 的了解很少关于这个具体的事情 这是带有代码的 JSFiddle http jsfiddle net k5Q3p 我想
  • CORS 在 jquery 中工作正常,但在 angularjs 中不行

    我的服务器端是php mysql 我正在另一个域的 Web 服务中进行 Ajax 调用 其中启用了 的访问控制 var postUrl http logical brains com elance clone test login php
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • Page_ClientValidate 未定义

    我正在使用 ASP NET 2 0 并使用 IE8 作为我的默认浏览器 但无论我尝试多少次 Page ClientValidate一直给我这个错误 它没有定义 我怎么解决这个问题 请帮忙 所以 我想你的页面中可能没有任何RequiredVa
  • 当用户告诉浏览器“刷新”时,是否应该填写 HTTP_REFERER?

    我正在尝试使用引用标头检查作为深度防御 即多种安全技术之一 但请注意仅依赖于任何一种技术 有时 MSIE 似乎不包含刷新时的引荐来源网址 这是预期的行为吗 无论如何 我是否可以检测刷新 以便我知道缺少引荐来源网址是可以的 是的 我知道引荐来
  • 您可以运行一个从 ASP.Net 项目运行计划任务的“服务”吗?

    我为我们的客户构建了一个 Windows 服务 它从数据库中收集所有已更改 新的行 将它们转换为 CSV 然后每晚通过 FTP 将它们上传到某个地方 现在事实证明 他们无权安装或运行 Windows 服务 这是一个仅 Web 路径托管的解决
  • 如何从 Web API 应用程序返回 PDF

    我有一个在服务器上运行的 Web API 项目 它应该从两种不同类型的源返回 PDF 实际的可移植文档文件 PDF 和存储在数据库中的 base64 字符串 我遇到的问题是将文档发送回客户端 MVC 应用程序 剩下的部分是关于所发生的一切以
  • 如何强制 Visual Studio 2008 生成 Designer.cs,例如不管怎样.aspx.designer.cs

    我在使用 Visual Studio 2005 使用网站技术生成的 Asp Net V2 0 中有一些 Web 表单 想要将它们导入到设置为 v3 5 Asp Net MVC 的 Visual Studio 2008 我在其中使用项目技术
  • 随机数但不重复

    我想生成一个小于 50 的随机数 但一旦生成该数字 我希望它不能再次生成 谢谢您的帮助 请参见 费舍尔 耶茨洗牌 http en wikipedia org wiki Fisher E2 80 93Yates shuffle public
  • 锚标记 href 中的 eval

    我想要实现的目标是在锚标记的 href 中使用 Eval 作为参数 锚点嵌套在转发器内 为什么我不能使用后面的代码来实现这一点 我尝试了一些事情但没有运气 a href http MyWebsite ActiveUsers ID Inser
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • ASP .NET 按钮事件处理程序不会在第一次单击时触发,而是在回发后第二次单击时触发

    背景 我正在自定义现有的 ASP NET C 应用程序 它有自己的小 框架 和约定 供开发人员在扩展 定制其功能时遵循 我目前正在扩展它的一些管理功能 该框架提供了一个合同来强制执行GetAdministrationInterface 方法
  • ASP.NET 开发人员真的需要关心线程安全吗?

    我认为自己了解线程的概念以及为什么某些代码是或不是 线程安全 的 但作为主要使用 ASP NET 的人 线程和线程安全是我很少考虑的事情 然而 我似乎在 Stack Overflow 上遇到了大量评论和答案 不一定适用于 ASP NET 大
  • GeneratePasswordResetTokenAsync 和GenerateUserTokenAsync 的默认TokenLifespan 是多少

    我到处都找过 但似乎无法确定每个选项的默认值是什么 我还需要知道是否有办法为每个设置不同的寿命 谢谢 对于任何令牌来说 默认值显然都是 24 小时 您可以将其设置为不同的值 但相同的值将同等地应用于所有令牌 GenerateEmailCon
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri
  • 如何在vb.net中对datagridview的3列进行排序

    下面我想对 ProductCode ColorCode 和 Size 列进行排序 请指导 对 大小 列中的信息进行排序 Size Number sequence XS 1 S 2 M 3 L 4 XL 5 XXL 6 2L 7 3L 8 4
  • 优化视图状态

    是否有人对优化 ASP NET 应用程序的视图状态有任何想法或参考可以向我指出 我不想把它全部关闭 优化它的主要目标是提高性能 所以我不想运行一个昂贵的函数来递归地禁用某些控件的视图状态 因为该函数会减慢速度页面的加载时间会达不到目的 有任
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P

随机推荐