Oct 02, 2015, 5:26 PM
[CLOSED] UserControl DirectMethod call
I can duplicate your example of calling a DirectMethod defined by a user control from the usercontrol, but I launch user controls differently. The code below mimics your example when referencing the user control SampleUC01.ascx, but how can I get it to work for SampleUC02.ascx.
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Register Src="SampleUC01.ascx" TagName="MyUserControl" TagPrefix="uc" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" DirectMethodNamespace="DM" />
<script runat="server">
[DirectMethod]
public void LaunchDialog(string dir, String controlNm)
{
UserControlRenderer.Render(new UserControlRendererConfig
{
UserControlPath = String.Format("{0}/{1}.ascx", dir, controlNm),
SingleControl = true
});
}
</script>
<script type="text/javascript">
Dashboard = {
launchDialog: function (dir, controlNm, controlId) {
var dialog = Ext.getCmp(controlId);
if (dialog) {
dialog.show();
}
else {
DM.LaunchDialog(dir, controlNm);
}
}
}
</script>
<uc:MyUserControl ID="UserControl1" runat="server" />
<ext:Button runat="server" Text="Open">
<Listeners>
<Click Handler="Dashboard.launchDialog('.', 'SampleUC02', 'Sample02Window');" />
</Listeners>
</ext:Button>
</form>
</body>
</html>
SampleUC01.ascx<%@ Control Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
[DirectMethod]
public void Hello01()
{
X.Msg.Alert("...", "Hello from user control Sample 01 Window").Show();
}
</script>
<ext:Window ID="Sample01Window" runat="server" ClientIDMode="Static" Title="Sample 01 Window" Width="200" Layout="FitLayout" CloseAction="Hide">
<Items>
<ext:Button ID="SampleButton" runat="server" Text="Call DirectMethod in ascx">
<Listeners>
<Click Handler="#{DirectMethods}.Hello01();" />
</Listeners>
</ext:Button>
</Items>
</ext:Window>
SampleUC02.ascx<%@ Control Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
[DirectMethod]
public void Hello02()
{
X.Msg.Alert("...", "Hello from user control Sample 02 Window").Show();
}
</script>
<ext:Window ID="Sample02Window" runat="server" ClientIDMode="Static" Title="Sample 02 Window" Width="200" Layout="FitLayout" CloseAction="Hide">
<Items>
<ext:Button ID="SampleButton" runat="server" Text="Call DirectMethod in ascx">
<Listeners>
<Click Handler="#{DirectMethods}.Hello02();" />
</Listeners>
</ext:Button>
</Items>
</ext:Window>
Last edited by Daniil; Oct 16, 2015 at 12:09 PM.
Reason: [CLOSED]