Шаблон JQuery не отображает запись, установленную как групповая - PullRequest
0 голосов
/ 13 июня 2011

Я пробовал разные способы отображения заголовка, который является полем GroupBy, но не отображается в сетке Все другие записи отображаются правильно в группировке.

Кто-нибудь подскажет, как это исправить?

Запись теперь показывает, но не заполняет $ {Title} заполнитель

Отображение табличной записи

{Title}
        HRDInactive     HRD     
        HRDN1           HR  
        HRBDN           HRB     
        HRBCDN          HRC     
{Title}
        PatientsCInactive       PatientsC   
        PatientsADN             PatientsA   
        PatientsBDN             PatientsB   

Ответ в Firefox Firebug

[[{"ParentMenuId":0,"Id":30,"GroupName":"footer_menu","IndexOrder":0,"Title":"Health Resources","DisplayName":"HRDInactive","UrlName":"HRD","Active":false,"Message":null,"Status":null},{"ParentMenuId":0,"Id":27,"GroupName":"footer_menu","IndexOrder":1,"Title":"Health Resources","DisplayName":"HRDN1","UrlName":"HR","Active":true,"Message":null,"Status":null},{"ParentMenuId":0,"Id":28,"GroupName":"footer_menu","IndexOrder":2,"Title":"Health Resources","DisplayName":"HRBDN","UrlName":"HRB","Active":true,"Message":null,"Status":null},{"ParentMenuId":0,"Id":29,"GroupName":"footer_menu","IndexOrder":3,"Title":"Health Resources","DisplayName":"HRBCDN","UrlName":"HRC","Active":true,"Message":null,"Status":null}],[{"ParentMenuId":0,"Id":26,"GroupName":"footer_menu","IndexOrder":1,"Title":"Patients","DisplayName":"PatientsCInactive","UrlName":"PatientsC","Active":false,"Message":null,"Status":null},{"ParentMenuId":0,"Id":24,"GroupName":"footer_menu","IndexOrder":2,"Title":"Patients","DisplayName":"PatientsADN","UrlName":"PatientsA","Active":true,"Message":null,"Status":null},{"ParentMenuId":0,"Id":25,"GroupName":"footer_menu","IndexOrder":3,"Title":"Patients","DisplayName":"PatientsBDN","UrlName":"PatientsB","Active":true,"Message":null,"Status":null}]]

AJAX Call

var ReloadGrid = (function(){
            $.getJSON("/FooterMenu/GetFooterGrid", function(data) {
                $('#gridTemplate').tmpl(data).appendTo('table.gridTable > tbody');
            });
 });

Template

<script id="gridTemplate" type="text/x-jQuery-tmpl">
    <tr class="gridRow">
        <td class="gridSpan" >${Title}</td>
    </tr>
    {{tmpl($data) "#cellTemplate"}}
</script>
<script id="cellTemplate" type="text/x-jQuery-tmpl">
    <tr class="gridRow">
        <td class="cellTd">${DisplayName}</td>

    </tr>
</script>   


<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
    <tbody>
        <tr class="gridTitleRow">
            <td class="iconLink widthAuto">Display Name</td>
        </tr>
    </tbody>
</table>
</div>

1 Ответ

1 голос
/ 13 июня 2011

Когда функции tmpl передается массив, он выполняет шаблон для каждого элемента в массиве.

Что происходит в вашем образце, так это то, что gridTemplate присваивается каждому элементу в самом внешнем массиве, который на самом деле является массивом ваших элементов, например:

[{"ParentMenuId":0,"Id":30,"GroupName":"footer_menu","IndexOrder":0,"Title":"Health Resources","DisplayName":"HRDInactive","UrlName":"HRD","Active":false,"Message":null,"Status":null},{"ParentMenuId":0,"Id":27,"GroupName":"footer_menu","IndexOrder":1,"Title":"Health Resources","DisplayName":"HRDN1","UrlName":"HR","Active":true,"Message":null,"Status":null},{"ParentMenuId":0,"Id":28,"GroupName":"footer_menu","IndexOrder":2,"Title":"Health Resources","DisplayName":"HRBDN","UrlName":"HRB","Active":true,"Message":null,"Status":null},{"ParentMenuId":0,"Id":29,"GroupName":"footer_menu","IndexOrder":3,"Title":"Health Resources","DisplayName":"HRBCDN","UrlName":"HRC","Active":true,"Message":null,"Status":null}]

Затем, когда вы передаете $data в cellTemplate, он выполняет шаблон для каждого элемента в приведенном выше массиве, что позволяет вам получить ваши фактические данные.

Если заголовок одинаков для каждого элемента во внешнем массиве, тогда я полагаю, что вы могли бы сделать что-то вроде:

<td class="gridSpan" >${$data[0].Title}</td>
...