[CLOSED] Fire an event when MultiSelect item is unselected

  1. #1

    [CLOSED] Fire an event when MultiSelect item is unselected

    Currently, I have a multiselect that has a click directevent. It fires when selecting something, but I need it to also fire when unselecting it. Is this possible? I basically want to disable a button when no items are selected.
    Last edited by Daniil; Jun 07, 2011 at 7:22 PM. Reason: [CLOSED]
  2. #2
    Hi,

    I'd suggest you to use Change event.

    Example
    <Change Handler="if (Ext.isEmpty(newValue)) {
                        alert('Empty');
                     } else {
                        alert(newValue);
                     }" />
  3. #3
    I tried the change event, but it did the same thing. It fired when selecting an item, but did not when unselecting it.
  4. #4
    Well, it fires in both cases, see the sample.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!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 runat="server">
        <title>Ext.Net Example</title>
    
        <script type="text/javascript">
            var onChange = function (ms, newValue, oldValue) {
                newValue.split(",");
                oldValue.split(",");
                if (oldValue.length < newValue.length) {
                    alert("Item " + newValue[newValue.length - 1] + " is selected.");
                } else {
                    alert("Item " + oldValue[oldValue.length - 1] + " is deselected.");
                } 
            }
        </script>
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:MultiSelect runat="server">
            <Items>
                <ext:ListItem Value="1" Text="Item 1" />
                <ext:ListItem Value="2" Text="Item 2" />
            </Items>
            <Listeners>
                <Change Fn="onChange" />
            </Listeners>
        </ext:MultiSelect>
        </form>
    </body>
    </html>
  5. #5
    Ok. I've confirmed that it does fire when unselecting an item by clicking directly on the item, but if I click below in the white space, it unselects everything, but nothing fires.
  6. #6
    Confirmed.

    I can suggest to catch the "containerclick" event of MultiSelect's view.

    Example
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
     
    <!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 runat="server">
        <title>Ext.Net Example</title>
     
        <script type="text/javascript">
            var onChange = function (ms, newValue, oldValue) {
                newValue.split(",");
                oldValue.split(",");
                if (oldValue.length < newValue.length) {
                    alert("Item " + newValue[newValue.length - 1] + " is selected.");
                } else {
                    alert("Item " + oldValue[oldValue.length - 1] + " is deselected.");
                } 
            }
            
            var onAfterRender = function () {
                this.view.on('containerclick', function () {
                    Ext.Msg.alert("", "No selections");
                });
            }
        </script>
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:MultiSelect runat="server">
            <Items>
                <ext:ListItem Value="1" Text="Item 1" />
                <ext:ListItem Value="2" Text="Item 2" />
            </Items>
            <Listeners>
                <Change Fn="onChange" />
                <AfterRender Fn="onAfterRender" />
            </Listeners>
        </ext:MultiSelect>
        </form>
    </body>
    </html>
  7. #7
    i need to tie this to a directevent handler on the server side. Is there any way to do this?
  8. #8
    Well, you can use hidden buttons and .fireEvent().

    But I would use DirectMethods.
  9. #9
    I used DirectMethods. Worked great. Thanks!

Similar Threads

  1. Replies: 4
    Last Post: May 09, 2012, 9:24 PM
  2. Replies: 0
    Last Post: Mar 09, 2010, 7:28 AM
  3. How to fire server side event for menu item.
    By Satyanarayana murthy in forum 1.x Help
    Replies: 5
    Last Post: Dec 03, 2009, 10:55 AM
  4. [CLOSED] Howto fire OnSelectionChanged event on Multiselect
    By SFritsche in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Jun 17, 2009, 2:04 PM
  5. [CLOSED] MultiSelect Item CSS
    By Tbaseflug in forum 1.x Help
    Replies: 3
    Last Post: Apr 01, 2009, 7:42 AM

Tags for this Thread

Posting Permissions