[SOLVED] [1.0] CardLayout cannot jump to next Panel/Card in DirectMethod
New Community Forums available at http://forums.ext.net
 

Coolite Forums

Welcome Guest ( Login | Register )
 
[SOLVED] [1.0] CardLayout cannot jump to next...
Subscribe
Last Login: 6/24/2010 7:26:21 AM
Posts: 259,
Posted 3/9/2010 9:19:13 AM

Group: Coolite Premium Member & Early Adopter
Hello,

with our upgrade from 0.82 to 1.0 I run into trouble, because I am doing steps in a card layout by DirectMethods(AjaxMethods).

In the running project firebug prints out:


missing ; before statement
[Break on this error] ItemsWizardPanel.getLayout().setActive...ActiveItem(1);}WizardPanel.doLayout();


While the code looks like this at the moment (I´ve commented out unecessary lines to trap the bug)


[DirectMethod]
public void SetUser(int userId)
{
    WizardPanel.ActiveIndex = 1;
    //_selectedUser = new Ps_Personal_T(userId);
    //Session[SessionFields.EPOSSelectedUser] = _selectedUser;

    //string userName = _selectedUser.Vorname + " " + _selectedUser.Nachname;

    //if (_selectedUser.Fl_Kostenstelle_TToKostenstelle_Id != null && !String.IsNullOrEmpty(_selectedUser.Fl_Kostenstelle_TToKostenstelle_Id.Kostenstelle_Code))
    //{
    //    userName += " (" + _selectedUser.Fl_Kostenstelle_TToKostenstelle_Id.Kostenstelle_Code + ")";
    //    TextFieldCostCenter.Text = _selectedUser.Fl_Kostenstelle_TToKostenstelle_Id.Kostenstelle_Code;
    //}
    //else
    //{
    //    TextFieldCostCenter.Clear();
    //}

    //PanelStep2.Title = "Electronic Point of Sale - Manueller Warenkorb: " + userName;
    //WizardPanel.ActiveIndex = 1;
    //StoreBasket.RemoveAll();
    //TextFieldBarcodeEANSearch.Clear();
    //ButtonOrder.Disabled = true;
    //LabelTotalCost.Text = "EUR 0";
    //WizardPanel.DoLayout();
    //TextFieldBarcodeEANSearch.Focus();
    //CheckButtons();
      
}


Then I tried to copy a minimal example, but I was not to reproduce the bug, because the DirectMethod is never called in the mininmal example (another bug?).

Here is the example:

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Next_Click(object sender, DirectEventArgs e)
    {
        int index = int.Parse(e.ExtraParams["index"]);

        if ((index + 1) < this.WizardPanel.Items.Count)
        {
            this.WizardPanel.ActiveIndex = index + 1;
        }

        this.CheckButtons();
    }

    protected void Prev_Click(object sender, DirectEventArgs e)
    {
        int index = int.Parse(e.ExtraParams["index"]);

        if ((index - 1) >= 0)
        {
            this.WizardPanel.ActiveIndex = index - 1;
        }

        this.CheckButtons();
    }

    private void CheckButtons()
    {
        int index = this.WizardPanel.ActiveIndex;

        //   this.btnNext.Disabled = index == (this.WizardPanel.Items.Count - 1);
        this.btnPrev.Disabled = index == 0;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!X.IsAjaxRequest)
        {
            this.Store1.DataSource = this.TestData;
            this.Store1.DataBind();
        }
    }

    protected void MyData_Refresh(object sender, StoreRefreshDataEventArgs e)
    {
        this.Store1.DataSource = this.TestData;
        this.Store1.DataBind();
    }

    private object[] TestData
    {
        get
        {
            DateTime now = DateTime.Now;

            return new object[]
            {
                new object[] { "3m Co", 71.72, 0.02, 0.03, now },
                new object[] { "Alcoa Inc", 29.01, 0.42, 1.47, now },
                new object[] { "Altria Group Inc", 83.81, 0.28, 0.34, now },
                new object[] { "American Express Company", 52.55, 0.01, 0.02, now },
                new object[] { "American International Group, Inc.", 64.13, 0.31, 0.49, now },
                new object[] { "AT&T Inc.", 31.61, -0.48, -1.54, now },
                new object[] { "Boeing Co.", 75.43, 0.53, 0.71, now },
                new object[] { "Caterpillar Inc.", 67.27, 0.92, 1.39, now },
                new object[] { "Citigroup, Inc.", 49.37, 0.02, 0.04, now },
                new object[] { "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, now },
                new object[] { "Exxon Mobil Corp", 68.1, -0.43, -0.64, now },
                new object[] { "General Electric Company", 34.14, -0.08, -0.23, now },
                new object[] { "General Motors Corporation", 30.27, 1.09, 3.74, now },
                new object[] { "Hewlett-Packard Co.", 36.53, -0.03, -0.08, now },
                new object[] { "Honeywell Intl Inc", 38.77, 0.05, 0.13, now },
                new object[] { "Intel Corporation", 19.88, 0.31, 1.58, now },
                new object[] { "International Business Machines", 81.41, 0.44, 0.54, now },
                new object[] { "Johnson & Johnson", 64.72, 0.06, 0.09, now },
                new object[] { "JP Morgan & Chase & Co", 45.73, 0.07, 0.15, now },
                new object[] { "McDonald\"s Corporation", 36.76, 0.86, 2.40, now },
                new object[] { "Merck & Co., Inc.", 40.96, 0.41, 1.01, now },
                new object[] { "Microsoft Corporation", 25.84, 0.14, 0.54, now },
                new object[] { "Pfizer Inc", 27.96, 0.4, 1.45, now },
                new object[] { "The Coca-Cola Company", 45.07, 0.26, 0.58, now },
                new object[] { "The Home Depot, Inc.", 34.64, 0.35, 1.02, now },
                new object[] { "The Procter & Gamble Company", 61.91, 0.01, 0.02, now },
                new object[] { "United Technologies Corporation", 63.26, 0.55, 0.88, now },
                new object[] { "Verizon Communications", 35.57, 0.39, 1.11, now },
                new object[] { "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, now }
            };
        }
    }

   [DirectMethod]
    public void NextPanel()
    {
       this.WizardPanel.ActiveIndex = 1;
       this.WizardPanel.DoLayout();
    }
</script>

<!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>CardLayout - Ext.NET Examples</title>
    <link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="Form1" runat="server">
    <ext:ResourceManager ID="ResourceManager1" runat="server" />
    <ext:Panel ID="WizardPanel" runat="server" Title="Example Wizard" Padding="15" Height="300"
        Layout="card" ActiveIndex="0">
        <Items>
            <ext:GridPanel ID="GridPanel1" runat="server" StripeRows="true" Title="Array Grid"
                Width="600" Height="290" AutoExpandColumn="Company">
                <Store>
                    <ext:Store ID="Store1" runat="server" OnRefreshData="MyData_Refresh">
                        <Reader>
                            <ext:ArrayReader>
                                <Fields>
                                    <ext:RecordField Name="company" />
                                    <ext:RecordField Name="price" Type="Float" />
                                    <ext:RecordField Name="change" Type="Float" />
                                    <ext:RecordField Name="pctChange" Type="Float" />
                                    <ext:RecordField Name="lastChange" Type="Date" DateFormat="yyyy-MM-ddTHH:mm:ss" />
                                </Fields>
                            </ext:ArrayReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ColumnID="Company" Header="Company" Width="160" DataIndex="company" />
                        <ext:Column Header="Price" Width="75" DataIndex="price">
                        </ext:Column>
                        <ext:Column Header="Change" Width="75" DataIndex="change">
                        </ext:Column>
                        <ext:Column Header="Change" Width="75" DataIndex="pctChange">
                        </ext:Column>
                        <ext:DateColumn Header="Last Updated" Width="85" DataIndex="lastChange" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
                </SelectionModel>
                <Listeners>
                    <CellClick Handler="#{DirectMethods}.SetUser();" />
                </Listeners>
                <LoadMask ShowMask="true" />
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="10" />
                </BottomBar>
            </ext:GridPanel>
            <ext:Panel ID="Panel2" runat="server" Html="<h1>Card 2</h1><p>Step 2 of 2</p>" Border="false"
                Header="false" />
        </Items>
        <Buttons>
            <ext:Button ID="btnPrev" runat="server" Text="Prev" Disabled="true" Icon="PreviousGreen">
                <DirectEvents>
                    <Click OnEvent="Prev_Click">
                        <ExtraParams>
                            <ext:Parameter Name="index" Value="#{WizardPanel}.items.indexOf(#{WizardPanel}.layout.activeItem)"
                                Mode="Raw" />
                        </ExtraParams>
                    </Click>
                </DirectEvents>
            </ext:Button>
            <ext:Button ID="ButtonOrder" runat="server" Text="[Buchen]" Icon="User">
                <Listeners>
                    <Click Handler="#{DirectMethods}.NextPanel();" />
                </Listeners>
            </ext:Button>
        </Buttons>
    </ext:Panel>
    </form>
</body>
</html>


Regards,

Martin

Last Login: 7/5/2010 10:10:13 AM
Posts: 7,853,
Posted 3/9/2010 10:27:13 AM

Group: Core Development Team
Hi,

Your direct method is executed (on server side). Just generated js code throws the error on client side (if you set failure handler for that method then you see that).

That js error is fixed. Please update from SVN

--
Vladimir Shcheglov
Coolite Inc.
Development Team
Forum Guidelines | Coolite Examples | Coolite API Docs | ExtJS API Docs | Twitter
« Prev Topic | Next Topic »
Reading This Topic
Active Users: 0 ( 0 guests, 0 members, 0 anonymous members )
No members currently viewing this topic.
All times are GMT -5:00, Time now is 8:33pm