I'm trying to prevent a RowExpander from expanding if certain conditions are met. My first thought was to use the BeforeExpand event and return false if the conditions are met but this doesn't seem to work. I'm using version 3.2.1.19858.

Here's a simplified example.

First the controller:
using Ext.Net;
using Ext.Net.MVC;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;

namespace ExtNetBugsMVC.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Read()
        {
            List<User> lstUsers = new List<User>();
            lstUsers.Add(new User(1000, "Jeff"));
            lstUsers.Add(new User(1001, "James"));
            return this.Store(lstUsers);
        }
        public ActionResult RowExpander(string id)
        {
            int userID = Int32.Parse(id);
            List<AccessOptionDetail> lstAccessOptionDetail = new List<AccessOptionDetail>();
            if (userID == 1001)
            {
                lstAccessOptionDetail.Add(new AccessOptionDetail(1, "Goods In", true));
            }
            else if (userID == 1000)
            {
                lstAccessOptionDetail.Add(new AccessOptionDetail(2, "Production", false));
            }
            return this.Store(lstAccessOptionDetail);
        }
    }

    public class User
    {
        public User()
        {
        }
        public User(int id, string name)
        {
            ID = id;
            Name = name;
        }
        public int ID { get; set; }
        public string Name { get; set; }
    }
    public class AccessOptionDetail
    {
        public AccessOptionDetail()
        {
        }
        public AccessOptionDetail(int id, string option, bool isreadonly)
        {
            ID = id;
            Option = option;
            IsReadOnly = isreadonly;
        }
        public int ID { get; set; }
        public string Option { get; set; }
        public bool? IsReadOnly { get; set; }
    }
}
Now the View:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>
        var beforeExpand = function (item, body, record) {
            if (record.data.Name == 'Jeff') {
                Ext.Msg.alert('Error!', 'This row should not expand.');
                return false;
            }
        };
    </script>
</head>
<body>
    {
        @Html.X().ResourceManager().ScriptMode(Ext.Net.ScriptMode.Debug).SourceFormatting(true)
        @(Html.X().GridPanel().Width(352)
            .Title("Users").ID("GridPanel").Border(true)
            .Store(Html.X().Store()
                .ID("Store")
                .Model(Html.X().Model().IDProperty("ID")
                    .Fields(
                        new ModelField("ID", ModelFieldType.Int),
                        new ModelField("Name")
                        )
                    )
                .Proxy(Html.X().AjaxProxy().Url(Url.Action("Read")).Reader(Html.X().JsonReader().RootProperty("data"))))
            .ColumnModel(
                Html.X().Column().Text("User").DataIndex("Name").Width(325).Editor(Html.X().TextField())
            )
            .Plugins(
                Html.X().RowExpander().SingleExpand(true).ID("RowExpand")
                .Component(
                    Html.X().GridPanel().Border(true).Height(250).ID("AccessgridPanel")
                        .Store(Html.X().Store().ID("RowExpanderStore")
                            .Model(Html.X().Model()
                                .Fields(
                                    new ModelField("ID", ModelFieldType.Int),
                                    new ModelField("Option"),
                                    new ModelField("IsReadOnly", ModelFieldType.Boolean)
                                    )
                                )
                            .Proxy(Html.X().AjaxProxy().Url(Url.Action("RowExpander")).Reader(Html.X().JsonReader().RootProperty("data")))
                            .AutoLoadParams(new { id = JRawValue.From("this.record.data.ID") }))
                        .ColumnModel(
                            Html.X().Column().Text("Option").DataIndex("Option").Flex(1),
                            Html.X().CheckColumn().Text("Read Only?").DataIndex("IsReadOnly").Width(100).Editable(true)
                        )
                    ).Listeners(l => { l.BeforeExpand.Handler = "beforeExpand(item, body, record)"; })
                                                
                )
        )
    }
</body>
</html>