Oct 01, 2012, 2:03 PM
[CLOSED] Dynamic userControl load with DirectMethod
Hi,
Since DirectMethods TabChange event doesn't work (infinitive loop after first tab change which I described here: http://forums.ext.net/showthread.php...vent-TabChange)
I've decided to give a try DirectMethods which I've put in My UserControl Test.ascx
here's my sample used v1.5.0 )couldn't find v1.6:(:
Page.master
Am I miss something? How can I handle this?
Regards,
ViDom
Edit:
Tryed also change this:
Since DirectMethods TabChange event doesn't work (infinitive loop after first tab change which I described here: http://forums.ext.net/showthread.php...vent-TabChange)
I've decided to give a try DirectMethods which I've put in My UserControl Test.ascx
here's my sample used v1.5.0 )couldn't find v1.6:(:
Page.master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Page.master.cs" Inherits="Ext1._6Test.Page" %>
<%@ 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 id="Head1" runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager runat="server"></ext:ResourceManager>
<ext:Viewport runat="server">
<LayoutConfig>
<ext:VBoxLayoutConfig runat="server" Align="Stretch"/>
</LayoutConfig>
<Items>
<ext:Container runat="server" Height="70">
<LayoutConfig>
<ext:VBoxLayoutConfig runat="server" Align="Stretch"/>
</LayoutConfig>
<Items>
<ext:Container runat="server" Height="40">
<Content>
Top
</Content>
</ext:Container>
<ext:Toolbar runat="server" Height="30">
<Items>
<ext:Button runat="server" Text="Start" OnClientClick="window.location.href='Start.aspx'"></ext:Button>
<ext:Button runat="server" Text="Test" OnClientClick="window.location.href='Test.aspx'"></ext:Button>
</Items>
</ext:Toolbar>
</Items>
</ext:Container>
<ext:Container runat="server" Layout="Fit" Flex="1">
<Content>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</Content>
</ext:Container>
</Items>
</ext:Viewport>
</form>
</body>
</html>
pages Start and Test .aspx<%@ Page Title="" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="Start.aspx.cs" Inherits="Ext1._6Test.Start" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<ext:Container runat="server" Layout="Fit">
<Items>
<ext:ButtonBase runat="server" Text="btn Start Page"></ext:ButtonBase>
</Items>
</ext:Container>
</asp:Content>
<%-- Test.aspx --%>
<%@ Page Title="" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Ext1._6Test.Test" %>
<%@Register tagPrefix="uc" tagName="Test" src="controls/Test.ascx"%>
<%@Register assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<ext:Container runat="server" Layout="Fit">
<Content>
<uc:Test runat="server"/>
</Content>
</ext:Container>
</asp:Content>
userControls Test and DynamicControl *.ascx<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test.ascx.cs" Inherits="Ext1._6Test.controls.Test" %>
<%@ Import Namespace="Ext1._6Test.controls" %>
<%@ Register TagPrefix="ext" Namespace="Ext.Net" Assembly="Ext.Net" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
}
[DirectMethod]
public void LoadControl(Ext.Net.Panel panel)
{
DynamicControl dynamicControl = (DynamicControl) LoadControl("/DynamicControl.ascx");
dynamicControl.ID = "dynamic_Control_in_" + panel.ID;
panel.ContentControls.Add(dynamicControl);
panel.UpdateContent();
}
protected void tPanel_TabChange(object sender, DirectEventArgs e)
{
TabPanel tPanel = (TabPanel) sender;
Ext.Net.Panel panel = (Ext.Net.Panel)tPanel.Items[tPanel.ActiveIndex];
if (panel != null && panel.Items.Count==0)
{
DynamicControl dc = (DynamicControl) LoadControl("DynamicControl.ascx");
dc.ID = "dynamicControl_" + panel.ID;
panel.ContentControls.Add(dc);
panel.UpdateContent();
}
}
</script>
<ext:Container runat="server" Layout="Border" ID="container">
<Items>
<ext:Panel runat="server" Region="North" Height="40">
<Items>
<ext:Button runat="server" Text="btn north"></ext:Button>
</Items>
</ext:Panel>
<ext:Panel runat="server" Region="Center">
<Items>
<ext:TextField runat="server" Text="center"></ext:TextField>
</Items>
</ext:Panel>
<ext:TabPanel runat="server" Region="South" Height="300" Collapsed="true" Collapsible="False" ActiveIndex="0">
<Items>
<ext:Panel runat="server" ID="tab1" Title="Tab1"></ext:Panel>
<ext:Panel runat="server" ID="tab2" Title="Tab2"></ext:Panel>
</Items>
<Listeners>
<Activate Handler="Ext.net.DirectMethods.LoadControl(p)"></Activate>
</Listeners>
<DirectEvents>
<TabChange Before="if (!this.ignoredFirstTabChange) { this.ignoredFirstTabChange = true; return false; }" OnEvent="tPanel_TabChange"></TabChange>
</DirectEvents>
</ext:TabPanel>
</Items>
</ext:Container>
<%-- DynamicControl.ascx --%>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DynamicControl.ascx.cs" Inherits="Ext1._6Test.controls.DynamicControl" %>
<%@Register assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
txt.Text = this.ID;
}
</script>
<ext:TextField runat="server" ID="txt"></ext:TextField>
Question is why this DirectMethod doesn't work (doesn't even be call after click in second tab).Am I miss something? How can I handle this?
Regards,
ViDom
Edit:
Tryed also change this:
<Activate Handler="Ext.net.DirectMethods.LoadControl(p)"></Activate>
to:<Activate Handler="Ext.net.DirectMethods.Test.LoadControl(p)"></Activate>
It's make no changes still not working.
Last edited by Daniil; Oct 04, 2012 at 6:19 PM.
Reason: [CLOSED]