Oct 08, 2012, 2:52 PM
Dynamically Loaded User Control's Event Does Not Work
Hi,
I have a user control that has a simple button and put a message to the screen. When I press the button a javascript error occur.
Here is my user control's asp code
Thanks in advance.
I have a user control that has a simple button and put a message to the screen. When I press the button a javascript error occur.
Here is my user control's asp code
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SampleUserControl.ascx.cs" Inherits="ExtNetUCTest.SampleUserControl" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<form id="Form1" runat="server">
<ext:Panel
ID="WizardPanel"
runat="server"
Title="Example Wizard"
BodyPadding="15"
Height="300"
Layout="card"
ActiveIndex="0">
<Buttons>
<ext:Button ID="btnNext" runat="server" Text="Next" Icon="NextGreen">
<Listeners>
<Click Handler="#{DirectMethods}.Next_Click();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:Panel>
</form>
User Control's Code Behindnamespace ExtNetUCTest
{
public partial class SampleUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
[DirectMethod]
protected void Next_Click(object sender, DirectEventArgs e)
{
X.Msg.Alert("Test", "Test");
}
}
}
My Default.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ExtNetUCTest.Default" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!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>
<ext:ResourceManager ID="MyResourceManager" runat="server" />
<ext:Viewport runat="server">
<LayoutConfig>
<ext:VBoxLayoutConfig Align="Stretch"></ext:VBoxLayoutConfig>
</LayoutConfig>
<Items>
<ext:Panel runat="server" ID="myViewportHeader" Height="50"></ext:Panel>
<ext:Panel runat="server" ID="myViewportBase" Flex="1">
</ext:Panel>
<ext:Panel runat="server" ID="myViewportFooter" Height="25"></ext:Panel>
</Items>
</ext:Viewport>
</body>
</html>
And finally Default.aspx.csnamespace ExtNetUCTest
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (X.IsAjaxRequest)
return;
var btn = new Button(new Button.Config()
{
Text = "clickme"
});
btn.Listeners.Click.Handler = "App.direct.AButtonClick();";
this.myViewportHeader.Items.Add(btn);
}
[DirectMethod]
public void AButtonClick()
{
var uc = LoadControl("~/SampleUserControl.ascx") as UserControl;
this.myViewportBase.ContentControls.Add(uc);
this.myViewportBase.UpdateContent();
}
}
}
I press clickme and the user controls loaded as expected, but when i press Next Button in the user control, the following javascript message appears : "Uncaught TypeError: Cannot call method 'Next_Click' of undefined ".Thanks in advance.
Last edited by kcelik; Oct 09, 2012 at 6:30 AM.