我的网格有四个模板,但我无法以任何方式通过事件更改网格模板(例如,通过单击超链接或按钮)。 如何在运行时从其他模板中选择一个模板?
<grid id="dataGrid" model="@bind(vm.taskDTOs) @template('newTaskTemplate')" width="100%">
<columns id="dataGridColumns" />
<template name="newTaskTemplate" var="newTask">
<row>
<label value="" />
<label value="@bind(newTask.documentDTO.docTypeDTO.title)"/>
<label value="@bind(newTask.documentDTO.docNumber)"/>
<label value="@bind(newTask.documentDTO.docDateTime)"/>
<label value="@bind(newTask.assignerID)"/>
<label value="@bind(newTask.assignDateTime)"/>
<label value="@bind(newTask.assignDateTime)"/>
<label value="@bind(newTask.documentDTO.docTypeStateDTO.stateActionDTO.actionDTO.title)"/>
</row>
</template>
<!--if="${templateStatus.value=='pendingTask'}"-->
<template name="pendingTaskTemplate" var="pendingTask">
<row>
<label value="@bind(pendingTask.documentDTO.docTypeDTO.title)"/>
<label value="@bind(pendingTask.documentDTO.docNumber)"/>
<label value="@bind(pendingTask.documentDTO.docDateTime)"/>
<label value="@bind(pendingTask.assignerID)"/>
<label value="@bind(pendingTask.assignDateTime)"/>
<label value="@bind(pendingTask.assignDateTime)"/>
<label value="@bind(pendingTask.documentDTO.docTypeStateDTO.stateActionDTO.actionDTO.title)"/>
</row>
</template>
<!--if="${templateStatus.value=='refferedTask'}"-->
<template name="refferedTaskTemplate" var="RefferedTask">
<row>
<label value="@bind(RefferedTask.documentDTO.docTypeDTO.title)"/>
<label value="@bind(RefferedTask.documentDTO.docNumber)"/>
<label value="@bind(RefferedTask.documentDTO.docDateTime)"/>
<label value="@bind(RefferedTask.assigneeID)"/>
<label value="@bind(RefferedTask.assignDateTime)"/>
<label value="@bind(RefferedTask.assignDateTime)"/>
<label value="@bind(RefferedTask.catalogDTO.catalogTypeDTO.title)"/>
</row>
</template>
<!--if="${templateStatus.value == 'allTask'}"-->
<template name="allTaskTemplate" var="allTask">
<row>
<label value="" />
<label value="@bind(allTask.documentDTO.docTypeDTO.title)"/>
<label value="@bind(allTask.documentDTO.docNumber)"/>
<label value="@bind(allTask.documentDTO.docDateTime)"/>
<label value="@bind(allTask.assignerID)"/>
<label value="@bind(allTask.assigneeID)"/>
<label value="@bind(allTask.assignDateTime)"/>
<label value="@bind(allTask.assignDateTime)"/>
<label value="@bind(allTask.assignDateTime)"/>
<label value="@bind(allTask.assignDateTime)"/>
<label value="@bind(allTask.documentDTO.docTypeStateDTO.stateActionDTO.actionDTO.title)"/>
<label value="@bind(allTask.catalogDTO.catalogTypeDTO.title)"/>
</row>
</template>
</grid>
答案 0 :(得分:1)
使用“动态模板”。请参阅 Children Binding, Combine with Dynamic Template 。
在您的情况下,您可以将模板名称存储为ViewModel的属性,并像@template(vm.templateName)
一样绑定到它。
然后在运行时更改属性vm.templateName
以切换网格模板。