从listBox获取listitem - zk

时间:2018-01-23 13:58:46

标签: mvvm zk

我的问题:我想获得按钮的listitem,以便我可以在MVVM zk中应用样式。

目前我有这个:

    <listbox id="listbox" model="@bind(vm.myList) @template('items')">
     <listhead>
        <listheader hflex="3"label="Client" align="left" />
        <listheader hflex="3"label="show" align="left" />
     </listhead>
     <template name="items" var="item">
            <listitem   value="@bind(item.client)" />
            <listitem>
               <button hflex="1" label="show"                                                       
                 onClick="@command('ShowClient')" />
            </listitem>
    </template>
    </listbox>

因此,当我点击按钮显示时,会出现一个弹出窗口,我想将样式应用到单击按钮的客户端行。

1 个答案:

答案 0 :(得分:0)

有一些方法可以解决这个问题 您可以在VM中使用以下内容:

@Command
public void showClient (@ContextParam(ContextType.COMPONENT) Button button) {
    button.setStyle("");
}

现在,请注意这里。如果您的活动是从某个非Button的组件触发的,那么您将获得ClassCastException 因此,当发生这种情况时,只需将Button缩减为Component,并在Button时将其转换为Button。 您也可以使用课程:HtmlBasedComponent
像这样你拥有支持setStyle的最低等级,你永远不需要施放它。
大多数组件都继承自此类,因此ClassCastException的可能性较小。