Jul 29, 2008, 12:16 AM
create window from within another window
Is it possible to create a window from a buttonfield in a gridview of another window but tie it to the viewport?
I have a main page simplified:
<html>
<head runat="server">
<title>BICSI Vantage</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<ext:ScriptManager ID="ScriptManager1" runat="server" Theme="Gray" Hide="true">
<Listeners>
<DocumentReady Fn="Ext.get('lnkHome').on('click', function() { winHome.show(); });"/>
</Listeners>
</ext:ScriptManager>
<form id="MainForm" runat="server">
<ext:ViewPort ID="ViewPort1" runat="server">
<Content>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<North Collapsible="True" Split="True">
<ext:Panel ID="NorthPanel" runat="server" Height="95" Title="Header" Header="False">
<Content>
<ext:Accordion ID="WestAccordion" runat="server" Animate="true" TitleCollapse="true">
<ext:Panel ID="Favorites" runat="server" Title="Favorites" Border="false" BodyStyle="padding:6px;" Icon="Star">
<Content>
<ul>
<li class="findindividual"><a href="#" id="lnkInd">Find Individual</a></li>
</ul>
</Content>
</ext:Panel>
</ext:Accordion>
</Content>
</ext:Panel>
</North>
</ext:BorderLayout>
</Content>
</ext:ViewPort>
<ext:Window ID="winInd" Showonload="false" Icon="User" Minimizable="true" runat="server" Collapsible="true" Title="Individual" AutoLoad="http://localhost:3077/BICSI-Vantage2...ndividual.aspx" Width="800" Height="800" CloseAction="Hide">
</ext:Window>
</form>
</body>
</html>
and a window with a bunch of tabs with gridviews simplified:<script runat="server">
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "showInv")
{
Window win = new Window();
win.Title = "Invoice";
win.AutoLoad = "http://localhost:3077/BICSI-Vantage2...s/invoice.aspx";
this.form1.Controls.Add(win);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>BICSI Vantage</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager2" runat="server" LoadScriptsBeforeUI="False">
</asp:ScriptManager>
<ext:ScriptManager ID="ScriptManager1" runat="server" Theme="Gray" Hide="true">
</ext:ScriptManager>
<ext:ViewPort ID="ViewPort1" runat="server">
<Content>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<Center>
<ext:Panel ID="Panel7" runat="server" Title="Result">
<Content>
<ext:FitLayout ID="FitLayout2" runat="server">
<ext:TabPanel ID="TabPanel2" runat="server" ActiveTab="2" Border="false"
Title="Center">
<Tabs>
<ext:Tab ID="InvoicesTab" runat="server" Title="Invoices">
<Content>
<asp:UpdatePanel ID="UpdatePanel9" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView5" runat="server" AllowSorting="True" AutoGenerateColumns="False"
DataSourceID="LinqDataSource3" OnRowCommand="RowCommand">
<Columns>
<asp:BoundField DataField="INVOICENUM" HeaderText="Inv #" ReadOnly="True" SortExpression="INVOICENUM" />
<asp:BoundField DataField="INVOICESTT" HeaderText="Inv Status" ReadOnly="True" SortExpression="INVOICESTT" />
<asp:BoundField DataField="INVOICEDATE" HeaderText="Inv Date" ReadOnly="True" SortExpression="INVOICEDATE" />
<asp:BoundField DataField="DUEDATE" HeaderText="Due Date" ReadOnly="True" SortExpression="DUEDATE" />
<asp:BoundField DataField="TOTALAMT" HeaderText="Total Amt" ReadOnly="True" SortExpression="TOTALAMT" />
<asp:BoundField DataField="BALANCEDUE" HeaderText="Bal. Due" ReadOnly="True" SortExpression="BALANCEDUE" />
<asp:BoundField DataField="PAIDFLG" HeaderText="Paid" ReadOnly="True" SortExpression="PAIDFLG" />
<asp:BoundField DataField="PAYMENTNUM" HeaderText="Pay #" ReadOnly="True" SortExpression="PAYMENTNUM" />
<asp:BoundField DataField="PAYMENTDATE" HeaderText="Pay Date" ReadOnly="True" SortExpression="PAYMENTDATE" />
<asp:BoundField DataField="ORDERSOURCE" HeaderText="Source" ReadOnly="True" SortExpression="ORDERSOURCE" />
<asp:BoundField DataField="SOURCECD" HeaderText="Source CD" ReadOnly="True" SortExpression="SOURCECD" />
<asp:ButtonField CommandName="showInv" HeaderText="InvNum"
InsertVisible="False" ShowHeader="True" DataTextField="INVOICENUM" />
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource3" runat="server" ContextTypeName="CV2DataContext"
TableName="INVOICE2s" Where="PAYEECD == @PAYEECD" Select="new (INVOICENUM, INVOICESTT, INVOICEDATE, DUEDATE, PRICEAMT, TOTALAMT, BALANCEDUE, PAIDFLG, PAYMENTNUM, PAYMENTDATE, ORDERSOURCE, SOURCECD)">
<WhereParameters>
<asp:ControlParameter ControlID="GridView3" Name="PAYEECD" PropertyName="SelectedValue"
Type="Int32" DefaultValue="0" />
</WhereParameters>
</asp:LinqDataSource>
</ContentTemplate>
</asp:UpdatePanel>
</Content>
</ext:Tab>
</Tabs>
</ext:TabPanel>
</ext:FitLayout>
</Content>
</ext:Panel>
</Center>
</ext:BorderLayout>
</Content>
</ext:ViewPort>
</form>
</body>
</html>
I have the simplified rowcommand function that , I think, should just create an invoice window in the existing window but i get this error with some encrypted viewstate data highlighted in the debug screen:Microsoft JScript runtime error: 'this.ctl32' is null or not an object
if i use the same code in a pageload it works fine
protected void Page_Load(object sender, EventArgs e)
{
Window win = new Window();
win.Title = "Invoice";
win.AutoLoad = "http://localhost:3077/BICSI-Vantage2...istration.aspx";
this.form1.Controls.Add(win);
}
any ideas?