Syncfusion Невозможно отобразить значение выражения Grid rowtemplate из dataSource - PullRequest
0 голосов
/ 13 мая 2018

Здравствуйте, я использую Syncfusion Essential JS2 для JavaScript (ES5) и пытаюсь использовать Grid Component для визуализации данных из этого массива testdata:

var testdata = [{firstName: 'Tony', lastName: 'Stark'}, {//some other objects}];

Я создал объект Grid следующим образом:

var grid = new ej.grids.Grid({
    dataSource: testdata,
    rowTemplate: '#row-template',
    columns: [
        {field: 'firstName', headerText: 'First Name'},
        {field: 'lastName', headerText: 'Last Name'}
    ],
});
grid.appendTo('#grid');

, и фактический шаблонный скрипт в моем jsp выглядит так:

<script id="row-template" type="text/x-template">
    <tr>
        <td>${firstName}</td> <!-- should render 'Tony' -->
        <td>${lastName}</td> <!-- should render 'Stark' -->
    </tr>
</script>

Когда я запускаю его, теги td остаются пустыми.похоже, синтаксис '$ {}' работает , а не , затем я попытался поместить жестко закодированное значение в теги td,

<td>Test First Name</td>
<td>Test Last Name</td>

и, конечно, жестко закодированные значения были успешно обработаны.Но мне нужно получить значения из массива 'testdata' ..

Я надеюсь, что кто-то здесь ранее использовал компоненты Grid.Пожалуйста, помогите мне.Вот технологии, которые я использовал:

Syncfusion Essential JS (ES5), JSP, Spring,

Спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

Я наконец решил эту проблему.Проблема в том, что шаблонизатор Syncfusion и шаблонизатор JSTL (JSP) имеют одинаковый синтаксис:

${expression}

, поэтому этот скрипт:

<script id="row-template" type="text/x-template">
<tr>
    <td>${firstName}</td> <!-- should render 'Tony' -->
    <td>${lastName}</td> <!-- should render 'Stark' -->
</tr>

, потому что онзаписанные в jsp-файл, $ {firstName} и $ {lastName} были обработаны так, как будто это выражение JSTL.Вот почему тэги пустые.

, чтобы решить эту проблему, я просто переместил код шаблона из jsp в мой файл js.

var grid = new ej.grids.Grid({
dataSource: testdata,
rowTemplate: '<tr><td>Write template code here</td></tr>',
columns: [
    {field: 'firstName', headerText: 'First Name'},
    {field: 'lastName', headerText: 'Last Name'}
],
});
grid.appendTo("#Grid");
...