0

グリッドには 4 つのテンプレートがありますが、グリッドのテンプレートをイベント (たとえば、ハイパーリンクやボタンのクリック) で変更することはできませんでした。実行時に他のテンプレートから 1 つのテンプレートを選択するにはどうすればよいですか?

<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次に、実行時にプロパティを変更して、グリッドのテンプレートを切り替えます。

于 2013-03-15T06:10:10.707 に答える