0

我的网格有四个模板,但我无法通过事件(例如,通过单击超链接或按钮)以任何方式更改网格的模板。如何在运行时从其他模板中选择一个模板?

<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>
4

1 回答 1

1

使用“动态模板”。请参考子绑定,结合动态模板

在您的情况下,您可以将模板名称存储为 ViewModel 的属性,并像@template(vm.templateName).

然后在运行时更改属性vm.templateName以切换 Grid 的模板。

于 2013-03-15T06:10:10.707 回答