illegal XML character, TreePanel Listeners ?

  1. #1

    illegal XML character, TreePanel Listeners ?

    I have to check a C# property in a TreePanel listener :

    <Listeners>
        <CheckChange Handler="if (!<%= AllowOneSelect.ToString().ToLower() %>) return;//Error
        if (this.lock) {return;}
        if (this.checked) {
            if (!this.checkedNode)
            {
                this.checkedNode = node;
            }
            else
            {
                this.lock = true;
                this.checkedNode.ui.toggleCheck(false);
                this.lock = false;
                this.checkedNode = node;
            }
        }
        else this.checkedNode = null;" />
    </Listeners>
    But I receive illegal XML character JavaScript error.
    How can I fix it ?
  2. #2
    Hi,

    Unfortunately this is a limitation of ASP.NET. The parser exception is being thrown by the runtime.

    One option would be to create a separate JavaScript function, then call that function.

    Something like the following:

    Example

    <script type="text/javascript">
        var doSomething = function (item) {
            var allow = <%= AllowOneSelect.ToString().ToLower() %>;
    
            if (!allow) return;//Error
    
            if (item.lock) {return;}
        };
    </script>
    Hope this helps.
    Geoffrey McGill
    Founder
  3. #3
    Then in your <CheckChange> config, you just pass the name of the JavaScript function:

    Example

    <Listeners>
        <CheckChange Fn="doSomething" />
    Geoffrey McGill
    Founder
  4. #4

    Solved

    Great, Thanks.
    I could resolved my problem by your guidance.

    My full codes in the following :

    <script type="text/javascript">
        var EnterprisePositionsTreeFilterTree = function (el, e) 
        {
            var tree = <%= EnterprisePositionsTree1.ClientID %>, text = this.getRawValue();
            tree.clearFilter();
            if (Ext.isEmpty(text, false)) return;
            if (e.getKey() === Ext.EventObject.ESC) {
                clearFilter();
            } else {
                var re = new RegExp(".*" + text + ".*", "i");
                tree.filterBy(function (node) {
                    return re.test(node.text);
                });
            }
        };
    
        var EnterprisePositionsTreeClearFilter = function () {
            var field = <%= EnterprisePositionsTreeTriggerField1.ClientID %>, tree = <%= EnterprisePositionsTree1.ClientID %>;
            field.setValue("");
            tree.clearFilter();
            tree.getRootNode().collapseChildNodes(true);
            tree.getRootNode().ensureVisible();
        };
        
        function CheckParentNode(node) {
            if (node.getUI().checkbox.checked == true && node.parentNode != undefined)
                CheckParentNode(node.parentNode);
        };
        
        function UncheckAllNodesExceptThisOne(node, checked) {
            if (!<%= AllowOneSelect.ToString().ToLower() %>) return;
            if (this.lock) { return; }
            
            if (checked) 
            {
                if (!this.checkedNode)
                {
                    this.checkedNode = node;
                }
                else
                {
                    this.lock = true;
                    this.checkedNode.ui.toggleCheck(false);
                    this.lock = false;
                    this.checkedNode = node;
                }
            }
            else 
                this.checkedNode = null;
        }
    </script>
    <ext:TreePanel ID="EnterprisePositionsTree1" runat="server" UseArrows="true" AutoScroll="true"
        Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false" Collapsible="true"
        Collapsed="false">
        <TopBar>
            <ext:Toolbar ID="EnterprisePositionsTreeToolbar1" runat="server">
                <Items>
                    <ext:ToolbarFill ID="EnterprisePositionsTreeToolbarFill1" runat="server" />
                    <ext:ToolbarTextItem ID="EnterprisePositionsTreeToolbarTextItem1" runat="server"
                        Text=" Filter : " />
                    <ext:TriggerField ID="EnterprisePositionsTreeTriggerField1" runat="server" EnableKeyEvents="true">
                        <Triggers>
                            <ext:FieldTrigger Icon="Clear" />
                        </Triggers>
                        <Listeners>
                            <KeyUp Fn="EnterprisePositionsTreeFilterTree" Buffer="250" />
                            <TriggerClick Handler="EnterprisePositionsTreeClearFilter();" />
                        </Listeners>
                    </ext:TriggerField>
                </Items>
            </ext:Toolbar>
        </TopBar>
        <Listeners>
            <CheckChange Fn="UncheckAllNodesExceptThisOne" />
        </Listeners>
        <Root>
        </Root>
    </ext:TreePanel>

Similar Threads

  1. Turkish Character Problem
    By mikser in forum 2.x Help
    Replies: 0
    Last Post: May 04, 2012, 12:30 PM
  2. [CLOSED] how do one set the maximum character for the tab header.
    By SymSure in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Apr 15, 2011, 4:30 PM
  3. Replies: 2
    Last Post: Apr 10, 2010, 3:34 AM
  4. [CLOSED] TreePanel + Listeners + Click/BeforeClick
    By state in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Apr 24, 2009, 7:21 PM
  5. TreePanel SelectionModel Listeners
    By jchau in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Dec 19, 2008, 3:47 PM

Tags for this Thread

Posting Permissions