Как я могу получить событие щелчка от объекта управления
Всем привет, Как поживаете?
Хорошего вам дня.
Я пытаюсь закодировать веб-решение для динамического добавления некоторых WebUserControls и cacht их Click Event. Я читал некоторые форумы, подобные этому, и я узнал, что для этого было необходимо делегировать мое событие щелчка из моего контроля и перепроектировать через Добавитьобработчик и Оператор addressof инструкции для моего файла "Default.aspx".
Ну, до этого шага все идет нормально. Но когда я нажимаю любую кнопку с моего пульта управления, я получаю систему.Сообщение об ошибке InvalidCastException (HResult=0x80004002), которое говорит, что невозможно преобразовать "System.Web.UI.HtmlControls.HtmlGenericControlobject" тип объекта для объекта "MyControl".
Он ссылается на специальную инструкцию о моем событии щелчка из моего файла "Default.aspx" .:
Dim laFiguraSeleccioanda As MiControl = DirectCast(DirectCast(sender, Button).Parent, MiControl)
И это вызов из моего события click из моего контрольного файла с этой инструкцией:
RaiseEvent EventoPublico_Click(sender, e)
Может некоторые Один пожалуйста, помогите мне? Как я могу поймать событие щелчка из файла MyControl и сделать что-то объявленное на моей странице по умолчанию?
Я позволяю всем вам мой код, построенный на ASPX.VB, чтобы вы могли лучше понять, что я имею в виду.
Вот снимок экрана ---> скриншот
Желая всем вам отличного дня, я еще раз приветствую вас и заранее благодарю за ваше доброе внимание и помощь.
Что я уже пробовал:
Умолчанию.aspx-файл
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <%@ Register Src="~/App_Controls/MiControl.ascx" TagPrefix="CJS" TagName="Figura" %> <head runat="server"> <title>Evento click con delegado</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="StyleSheet.css" type="text/css" rel="stylesheet" /> </head> <body> <form id="form1" runat="server"> <div runat="server"> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> </div> <br /> <div runat="server" class="Texto" style="clear:left"> <asp:Label ID="lbResultado" runat="server" Text="Esperando un Click.."></asp:Label> </div> </form> </body>
Умолчанию.aspx-файл.ВБ
Partial Class _Default Inherits System.Web.UI.Page Private Sub Form1_Load(sender As Object, e As EventArgs) Handles form1.Load For i As Integer = 1 To 3 Dim laFigura As MiControl = LoadControl("~/App_Controls/MiControl.ascx") AddHandler laFigura.EventoPublico_Click, AddressOf LaFigura_Click PlaceHolder1.Controls.Add(laFigura) laFigura.SuNombre = "Cuadrito 0" & i Next End Sub Protected Sub LaFigura_Click(ByVal sender As Object, ByVal e As EventArgs) Dim laFiguraSeleccioanda As MiControl = DirectCast(DirectCast(sender, Button).Parent, MiControl) lbResultado.Text = "Hiciste click en el " & laFiguraSeleccioanda.SuNombre End Sub End Class
MiControl.ascx вносятся
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="MiControl.ascx.vb" Inherits="MiControl" %> <link href="../StyleSheet.css" type="text/css" rel="stylesheet" /> <asp:Panel ID="Cuadrito" CssClass="Cuadrito Centro" runat="server"> <div runat="server"> <asp:Label ID="lbCuadrito" CssClass="Texto" Text="Control" runat="server" ></asp:Label> </div> <div runat="server"> <asp:Button ID="btnCuadrito" runat="server" Text="Haz click" /> </div> </asp:Panel>
MiControl.ascx вносятся.ВБ
Partial Class MiControl Inherits System.Web.UI.UserControl Public Delegate Sub Delegado_EventoClick(ByVal sender As Object, ByVal e As System.EventArgs) Public Event EventoPublico_Click As Delegado_EventoClick Public Property SuNombre As String Get Return lbCuadrito.Text End Get Set(value As String) lbCuadrito.Text = value End Set End Property Private Sub btnCuadrito_Click(sender As Object, e As EventArgs) Handles btnCuadrito.Click RaiseEvent EventoPublico_Click(sender, e) End Sub End Class
сообщение об ошибке:
System.InvalidCastException occurred HResult=0x80004002 Message=No se puede convertir un objeto de tipo 'System.Web.UI.HtmlControls.HtmlGenericControl' al tipo 'MiControl'. Source=App_Web_tumekcyd StackTrace: at _Default.LaFigura_Click(Object sender, EventArgs e) in D:\Mis documentos\Ejemplo 03 - Evento Click con delegado\Default.aspx.vb:line 14 at MiControl.btnCuadrito_Click(Object sender, EventArgs e) in D:\Mis documentos\Ejemplo 03 - Evento Click con delegado\App_Controls\MiControl.ascx.vb:line 16