[CLOSED] What happens is the previously selected (and valid) value populates.....

  1. #1

    [CLOSED] What happens is the previously selected (and valid) value populates.....

    Hi,

    The thread is related to:
    http://forums.ext.net/showthread.php?18195

    Regarding the question.

    plz help me~

    What happens is the previously selected (and valid) value populates the 'this.LinqDataSource1.WhereParameters["DrFileName"].DefaultValue'

    1
    this.LinqDataSource1.WhereParameters["DrFileName"].DefaultValue = id ?? "-1";

    first. Treepanel node Click -> it doesn't change a value of the parameter. : Gridpanel -> no result.

    and then. once again that node click -> it change a value of the parameter. : Gridpanel1 -> viewing result

    Please Help Me~
    what's problem?

    
    <%@ Page Language="C#" %>
    <%@ Import Namespace="Panel=Ext.Net.Panel" %>
    
    <%@ Import Namespace="Ext.Net.Utilities" %>
    
        <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
                   
            SiteMapNode siteNode = SiteMap.RootNode;
            TreeNode root = this.CreateNode(siteNode);
            root.Draggable = false;
            root.Expanded = true;
            AsyncTreeNode childNode = new AsyncTreeNode();
            childNode.Leaf = false;
            childNode.Expandable = Ext.Net.ThreeStateBool.True;
                 
            //dynamic tree root
            TreePanel1.Root.Add(this.CreateNodeWithOutChildren(siteNode));
            this.DataBind();   
                    
         }    
             
        protected void Store1_Refresh(object sender, StoreRefreshDataEventArgs e)
        {
                string id = e.Parameters["No"];
    
                if (!string.IsNullOrEmpty(id))
                {
                    this.LinqDataSource1.WhereParameters["No"].DefaultValue = id ?? "-1";
                    this.Store1.DataBind(); 
                }
                else
                {                            
                    this.LinqDataSource1.WhereParameters["No"].DefaultValue = "-1";
                    this.Store1.DataBind();
                }
            
        }
    
    
        protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
        {
            e.WhereParameters["No"] =  this.HiddenNo.Value ?? "-1";
        }
    
        protected void RowSelect(object sender, DirectEventArgs e)
        {
            string ID = e.ExtraParams["ID"];
        }
        </script>
            
        <script type="text/javascript">
            var loadPage = function (tabPanel, node) {
                var tab = tabPanel.getItem(node.id);
    
                if (!tab) {
    
                    tab = tabPanel.add({
                        id: 'Pages1',
                        title: node.text,
                        closable: true,
                        autoLoad: {
                            showMask: true,
                            url: "Viewer.aspx?IDK=" + node.attributes.href,
                            mode: "iframe",
                            maskMsg: "Loading " + node.attributes.description + "..."
                        },
                        listeners: {
                            update: {
                                fn: function (tab, cfg) {
                                    cfg.iframe.setHeight(cfg.iframe.getSize().height - 20);
                                },
                                scope: this,
                                single: true
                            }
                        }
                    });
                }
    
                tabPanel.setActiveTab(tab); ;
            }
    
            var getId = function (treeId) {
                var tree = Ext.getCmp(treeId),
                    node,
                    id = "no selection";
    
                if (tree) {
                    node = tree.getSelectionModel().getSelectedNode();
    
                    if (node) {
                        id = node.attributes.qtip;                    
                    }
                }
                return id;
    
            };
           
          </script>
    
    
        <title>Test</title>
    </head>
    <body>
    <form id="Form1" runat="server">    
    <ext:ResourceManager 
        ID="ResourceManager1" 
        runat="server"         
        DirectMethodNamespace="X"
        IDMode="Explicit"
        >
                    
    </ext:ResourceManager>
    
    <ext:Hidden ID="HiddenNo" runat="server" />      
    
    <asp:LinqDataSource 
        ID="LinqDataSource1" 
        runat="server" 
        ContextTypeName="ListDataContext"
        TableName="Lists"
        Where="No == @No"
        OnSelecting="LinqDataSource1_Selecting"
        OrderBy="ID ASC" EntityTypeName=""
        >
        <WhereParameters>
            <asp:Parameter Name="No" DefaultValue="-1" Type="String" />
        </WhereParameters>
    </asp:LinqDataSource> 
    
    <ext:Store ID="Store1" 
            runat="server"
            AutoLoad="false"
            SerializationMode="Simple"
            DataSourceID="LinqDataSource1"                                                            
            OnRefreshData="Store1_Refresh"
            RefreshAfterSaving="None">
            <Proxy>
                <ext:PageProxy />
            </Proxy>
            <AutoLoadParams>    
                <ext:Parameter Name="start" Value="0" Mode="Raw" />    
                <ext:Parameter Name="limit" Value="50" Mode="Raw" />   
            </AutoLoadParams>
            <DirectEventConfig>            
                <EventMask ShowMask="false" />        
            </DirectEventConfig>
            <Reader>
                <ext:JsonReader IDProperty="ID">
                    <Fields>
                    <ext:RecordField Name="ID" />
                    <ext:RecordField Name="No" />                  
                    <ext:RecordField Name="DESCRIPTION" />  
                    <ext:RecordField Name="Quantity" />  
                    </Fields>
                </ext:JsonReader>
            </Reader>
            <BaseParams>
                <ext:Parameter 
                    Name="DrNo" 
                    Value="getId('#{TreePanel1}')"
                    Mode="Raw" 
                    />              
            </BaseParams>
            <Listeners>    
                <LoadException Handler="Ext.Msg.alert('Load failed', (!Ext.isEmpty(e) && !Ext.isEmpty(e.message)) ? e.message : response.statusText);" />   
            </Listeners>
    </ext:Store>
                                                                                 
    
    <ext:Viewport ID="Viewport1" runat="server" StyleSpec="background-color: transparent;" Layout="BorderLayout">
    <Items>
        
        <ext:TreePanel 
                ID="TreePanel1"
                runat="server" >                
                <Listeners>
                    <Click Handler="if (node.attributes.href){ 
                                        e.stopEvent();                                    
                                        #{HiddenNo}.setValue(getId(this.id));  
                                        #{store1}.reload();   
                                        #{FormPanel1}.getForm().reset();                                                                  
                                        #{East}.expand();
                                        loadPage(#{Pages}, node);
                                        }
                                        " />                                                 
       
                                </Listeners>            
                                                                             
                <Loader>
                    <ext:PageTreeLoader OnNodeLoad="LoadPages" Timeout="120000">
                    </ext:PageTreeLoader>
                </Loader>                                                                 
            </ext:TreePanel>
                
        <ext:TabPanel ID="Pages" 
                    runat="server" > 
                <Items>
                    <ext:Panel 
                        ID="Pages1" 
                        runat="server" 
                        >
                         <AutoLoad Mode="IFrame" Url="Viewer.aspx" ShowMask="true" NoCache="true" DiscardUrl="true"     
                         </AutoLoad>
                        </ext:Panel>
                </Items>
        </ext:TabPanel>
    
        <ext:Panel 
                ID="East"
                runat="server" 
                Region="East"
                Collapsible="true" 
                Split="true" 
                MinWidth="300"
                Width="300" 
                Layout="Fit" 
                Collapsed="true">
                <Items>
    
                <ext:RowLayout ID="RowLayout1" runat="server" Split="true">
                    <Rows>
                     <ext:LayoutRow RowHeight="0.6">                                 
                        <ext:GridPanel
                            ID="GridPanel1" 
                            runat="server"
                            Border="false" 
                            StripeRows="true"
                            Icon="Table" 
                            Title="Part List"
                            Frame="True" 
                            BufferResize="250" 
                            StoreID="store1"
                            >      
                            
                            <LoadMask ShowMask="true" />                    
                            <SelectionModel>
                                <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">     
                                    <Listeners>
                                        <RowSelect Handler="#{FormPanel1}.getForm().loadRecord(record);#{FormPanel1}.record = record;" />
                                    </Listeners>
                                </ext:RowSelectionModel>
                            </SelectionModel>               
                            <ColumnModel ID="ColumnModel1" runat="server">
                            <Columns>                                     
                                        <ext:Column
                                            ColumnID="NO" 
                                            Header="No." 
                                            Sortable="true" 
                                            DataIndex="No" 
                                            Width="70px"
                                            >  
                                        </ext:Column>  
                                        <ext:Column 
                                            ColumnID="DESCRIPTION" 
                                            Header="Description" 
                                            Sortable="true" 
                                            DataIndex="DESCRIPTION" 
                                            Width="400px">      
                                        </ext:Column>  
                                       
                                    </Columns>
                            </ColumnModel>                         
                            <LoadMask ShowMask="true" />                              
                            <BottomBar>
                                <ext:PagingToolbar ID="PagingToolbar1" runat="server" StoreID="Store1" PageSize="50" />
                            </BottomBar>  
                     </ext:GridPanel>    
                     </ext:LayoutRow>                   
                        
                     <ext:LayoutRow RowHeight="0.4">
                            <ext:FormPanel 
                                ID="FormPanel1" 
                                runat="server" 
                                Split="true"
                                Margins="0 5 5 5"
                                Frame="true" 
                                Title="Part Information" 
                                Icon="table"
                                DefaultAnchor="100%">           
                            <Items>   
                                <ext:Hidden ID="ID" runat="server" DataIndex="ID" />         
                                <ext:TextArea ID="DESCRIPTION" runat="server" Height="50" FieldLabel="DESCRIPTION" DataIndex="DESCRIPTION"/>
                                <ext:TextField ID="No" runat="server" FieldLabel="No" DataIndex="No"/>
                                <ext:TextField ID="Qty" runat="server" FieldLabel="Quantity" DataIndex="Quantity" /> 
                            </Items>     
                        </ext:FormPanel>   
                           
                     </ext:LayoutRow>
                    </Rows>
                </ext:RowLayout>
            </Items>
            <Listeners>
                    <BeforeShow Handler="#{East}.Collapsed=false;" />
            </Listeners>
    
        </ext:Panel>
        
    </Items>
    </ext:Viewport>
    
    </form>
    </body>
    Last edited by Daniil; Aug 22, 2012 at 6:27 AM. Reason: [CLOSED]
  2. #2
    Hi,

    Please add an alert call here:
    #{HiddenNo}.setValue(getId(this.id));
    alert(#{HiddenNo}.getValue());
    within the TreePanel Click listener.

    Can you see an alert box when click the node first time? If yes, is the id correct?
  3. #3
    Hi Daniil,

    Yes, I can see an alert box when click the node first time.

    1. when click the node first time. alert:"no selection"
    2. when click the node second time. alert : id correct
    3. when click the other node first time. alert : show previous id
    4. when click the other node second time. alert : id correct

    what's problem?
  4. #4
    When a node is clicked, it is not actually selected yet.

    The "node" argument is passed to a TreePanel listener. Please use it.
    http://docs.sencha.com/ext-js/3-4/#!...el-event-click

    Example
    #{HiddenNo}.setValue(node.attributes.qtip); // "node" is a clicked node.
  5. #5
    Quote Originally Posted by Daniil View Post
    When a node is clicked, it is not actually selected yet.

    The "node" argument is passed to a TreePanel listener. Please use it.
    http://docs.sencha.com/ext-js/3-4/#!...el-event-click

    Example
    #{HiddenNo}.setValue(node.attributes.qtip); // "node" is a clicked node.
    Thank you~ Daniil~ ^^

Similar Threads

  1. Replies: 1
    Last Post: Oct 24, 2011, 3:14 AM
  2. Replies: 2
    Last Post: Jan 07, 2011, 6:09 PM
  3. Specified cast is not valid
    By craig2005 in forum 1.x Help
    Replies: 2
    Last Post: Dec 31, 2010, 7:10 PM
  4. [1.0] ext:ScripManager not valid
    By walle in forum 1.x Help
    Replies: 2
    Last Post: Nov 08, 2010, 10:55 PM
  5. [CLOSED] [1.0] Problem when showing a previously hidden tab
    By jmcantrell in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Aug 02, 2010, 8:33 PM

Posting Permissions