我使用业务包树视图组件作为菜单。我的目标是只检索没有子类别的顶级菜单。子类别将仅在用户图标单击(+ / - 图标)或菜单项单击时显示。
所以基本上当我点击“a”或绑定到这个菜单对象的图标时,我想向我的服务器发送请求以获取他的子类别等等。我不想在一个请求中获得所有内容。
正如我注意到的那样,视图中有两个单击处理程序。
1)使用Changed
属性 - 当我使用这个属性来处理点击事件时,我成功地将正确的对象放入我的CategorySelectedList
,但它只直接在文本标签上注册点击。对于图标,它不再起作用,类别菜单也不会展开。
2)使用Events.Click
属性 - 当我使用这个属性来处理点击事件时。我什至没有将正确的对象放入我的CategorySelectedList
属性中,但在这种情况下类别菜单会展开。
我无法将我的视图中的对象 ID 发送到SetActiveMenuNode
方法中,所以我必须直接从我的方法中获取它,CategorySelectedList
但每种方法都有自己的问题。
有什么解决办法吗?
模型视图
public List<CategoryListDTO> AdminMenuList { get; set; } = new List<CategoryListDTO>();
public List<CategoryListDTO> AdminMenuSelectedList { get; set; } = new List<CategoryListDTO>();
public void SetActiveMenuNode()
{
var selected = AdminMenuSelectedList.FirstOrDefault();
}
//načítání podkategorií
public StaticCommandBindingExpression LoadChildren { get; set; } = new StaticCommandBindingExpression(new CompiledBindingExpression( //something here));
我的观点
<dot:Content ContentPlaceHolderID="MainContent">
<section class="content">
<bp:TreeView DataSource="{value: AdminMenuList}"
SelectedValues="{value: AdminMenuSelectedList}"
ItemKeyBinding="{value: Id}"
ItemHasChildrenBinding="{value: HasCategories}"
ItemChildrenBinding="{value: AssignedToCategory}"
LoadChildren="{staticCommand: _parent.MyMethod()}"
Changed="{command: SetActiveMenuNode()}"
>
<p>{{value: Name}}</p>
</bp:TreeView>
</section>