Addhandler、button.click 未使用 VB.NET 触发

2023-12-01

我遇到了按钮和 AddHandler 的问题。仅当我在 Page_load 中使用 AddHandler Button1.click, AddressOf... 时它才有效,但如果我在子例程之一中动态创建按钮,则该事件不会触发。

例如,

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem>2</asp:ListItem>
</asp:DropDownList>
<asp:ScriptManager id="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel id="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
    <contenttemplate>
        <asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
     </contenttemplate>
</asp:UpdatePanel>
<asp:UpdatePanel id="UpdatePanel2" runat="server" UpdateMode="Conditional">
    <contenttemplate>
        <asp:Label id="Label2" runat="server" Text="Label"></asp:Label>
    </contenttemplate>
</asp:UpdatePanel>


Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Label1.Text = Date.Now
    ScriptManager1.RegisterAsyncPostBackControl(DropDownList1)
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    Label2.Text = "Panel refreshed at " + Date.Now.ToString()
End Sub

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
    Dim b As New Button
    b.Text = "Click"
    ScriptManager1.RegisterAsyncPostBackControl(b)
    AddHandler b.Click, AddressOf Button1_Click
    PlaceHolder1.Controls.Add(b)
    UpdatePanel1.Update()
End Sub

下拉列表有效,但按钮无效。我究竟做错了什么?


您必须在每次回发时重新生成动态创建的控件(最后在 Page_Load 中,在 Page_Init 中更好)。您必须相应地设置控件的 ID,因为 ASP.Net 需要它来识别哪个控件导致回发并处理适当的事件。

您可以在 ViewState 中保存创建的按钮数量,并使用它在 Page_Load 上重新生成它们。添加新按钮时增加数字。使用此数字还可以使按钮的 ID 唯一(将其附加到 ID),以确保每次回发时都相同。

欲了解更多信息,请查看页面生命周期 and 具有动态添加控件的 ViewState.

编辑:正如 Joel 所评论的,如果您只需要一个按钮,您可以静态设置它的 ID,但您必须在回发时重新生成它。处理它的点击事件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Addhandler、button.click 未使用 VB.NET 触发 的相关文章

  • 如何在 ASP.NET 中获取负载均衡器后面的主机名?

    我有几台服务器和一个负载均衡器 我想显示当前正在为该页面提供服务的服务器名称 我在用HttpContext Current Request ServerVariables SERVER NAME and HttpContext Curren
  • 如何找到 IIS 在负载/性能测试期间模拟的平均并发用户数?

    我正在使用 JMeter 进行负载测试 我正在练习通过简单地增加我的分布式 JMeter 测试用例中的线程数并启动测试来查找我们的网络服务器可以处理的最大并发线程 用户 数量 然后 我突然意识到 虽然 MAX 数字可能有用 但REAL我的网
  • 如何在 Asp.Net 页面上的一处处理所有错误/消息?

    我在这里寻找一些指导 在我的网站上 我将内容放入 Web 用户控件中 例如 我将有一个新闻项控件 一个文章控件 一个联系表单控件 这些将出现在我网站上的各个位置 我正在寻找一种方法 让这些控件将消息传递到它们所在的页面 我不想将它们紧密结合
  • 使用 LinearLayout 将按钮放在屏幕底部?

    我有以下代码 如何使 3 个按钮位于底部
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • Material UI - 更改主题中的按钮文本颜色

    我在直接在 Material UI 主题中更改按钮文本颜色时遇到问题 更改主色 按钮字体大小效果很好 因此问题不在于传递主题 这是我的代码 import React from react import MuiThemeProvider cr
  • 当用户告诉浏览器“刷新”时,是否应该填写 HTTP_REFERER?

    我正在尝试使用引用标头检查作为深度防御 即多种安全技术之一 但请注意仅依赖于任何一种技术 有时 MSIE 似乎不包含刷新时的引荐来源网址 这是预期的行为吗 无论如何 我是否可以检测刷新 以便我知道缺少引荐来源网址是可以的 是的 我知道引荐来
  • 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

    我只是想了解为什么我不能在 Web 服务中使用静态 Web 方法 为什么会受到限制 有人可以给我对此进行简洁的解释吗 答案是 因为你不能 它不是这样设计的 其设计是 将创建 Web 服务类的实例 然后调用实例方法 我只能猜测微软为什么这样设
  • 如何从 Web API 应用程序返回 PDF

    我有一个在服务器上运行的 Web API 项目 它应该从两种不同类型的源返回 PDF 实际的可移植文档文件 PDF 和存储在数据库中的 base64 字符串 我遇到的问题是将文档发送回客户端 MVC 应用程序 剩下的部分是关于所发生的一切以
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 不支持 EF6 上下文类型“System.Data.Entity.Core.Objects.ObjectContext”

    我有一个使用 Visual Studio 2013 和 ADO NET 实体数据模型 EF6 创建的新项目 现在我必须使用一些动态数据函数 例如访问 MetaTable 对象 所以我添加以下代码 MetaModel model new Me
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 家庭自动化图书馆[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 C 开发人员 希望将家庭自动化作为一种 爱好 我做了一些研究 但想知道是否有人知道支持 In
  • C# 的最佳替代“错误继续下一步”是什么?

    如果我为 C 代码放置空的 catch 块 它是否与 VB NET 的 On Error Resume Next 语句等效 try C code catch exception 我问这个问题的原因是因为我必须将 VB NET 代码转换为 C
  • 使一个对象只能被同一程序集中的另一个对象访问?

    每个业务对象都有一个包含 sql 调用的匹配对象 我想限制这些 sql 对象 使其只能由匹配的业务对象使用 如何才能实现这一目标 Update 格雷格提出了关于可测试性的观点 由于 SqlObjects 将包含非常特定于业务流程的 sql
  • ASP.NET 开发人员真的需要关心线程安全吗?

    我认为自己了解线程的概念以及为什么某些代码是或不是 线程安全 的 但作为主要使用 ASP NET 的人 线程和线程安全是我很少考虑的事情 然而 我似乎在 Stack Overflow 上遇到了大量评论和答案 不一定适用于 ASP NET 大
  • jQuery Datatable:分页和过滤器显示不正确

    我不知道如何解决这个问题 尝试了一整天但没有成功修复分页 我正在使用 jQuery 数据表 并且为了显示我的大量数据 我正在使用服务器端 作为测试 仅调用表中的 10 行数据 然后在传递到表之前 我重组了里面的数据dataSrc 使用这个解
  • GeneratePasswordResetTokenAsync 和GenerateUserTokenAsync 的默认TokenLifespan 是多少

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

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现

随机推荐