gpt4 book ai didi

asp.net - 动态创建的用户控件无法处理回发事件

转载 作者:行者123 更新时间:2023-12-04 13:10:31 25 4
gpt4 key购买 nike

我有一个用户控件,它使用页面初始化中的以下代码动态加载到页面中。

Dim oCtl As Object
oCtl = LoadControl("~/Controls/UserControl1.ascx")

oCtl.Id = "UserControl11"
PlaceHolder1.Controls.Clear()
PlaceHolder1.Controls.Add(oCtl)

用户控件还包含一个按钮,我无法捕获用户控件中的按钮单击。

最佳答案

您正在做的一些事情既不需要,也可能会导致您的问题。

这些是:

  • 不需要在 session 中存储控制对象。 Control 本身应该根据需要使用 ViewState 和 Session State 来存储信息,而不是整个实例。
  • 创建控件时不应检查 PostBack。每次都必须创建它以允许 ViewState 工作和连接事件。
  • 在加载 ViewState 之后加载的控件通常无法正确运行,因此尽可能避免在页面加载事件期间加载。

  • 这段代码对我有用:

    默认.aspx
    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="Test_User_Control._Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server"><title></title></head>
    <body>
    <form id="form1" runat="server">
    <asp:PlaceHolder ID="PlaceHolder1" runat="server" />
    </form>
    </body>
    </html>

    默认.aspx.vb
    Partial Public Class _Default
    Inherits System.Web.UI.Page

    Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

    Dim control As Control = LoadControl("~/UserControl1.ascx")
    PlaceHolder1.Controls.Add(control)

    End Sub
    End Class

    用户控件1.ascx
    <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="UserControl1.ascx.vb" Inherits="Test_User_Control.UserControl1" %>
    <asp:Label ID="Label1" Text="Before Button Press" runat="server" />
    <asp:Button ID="Button1" Text="Push me" runat="server" />

    UserControl1.ascx.vb
    Public Partial Class UserControl1
    Inherits System.Web.UI.UserControl

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Label1.Text = "The button has been pressed!"
    End Sub

    End Class

    关于asp.net - 动态创建的用户控件无法处理回发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/92792/

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