使用ASP.NET中的jTemplates将数据库值作为参数传递到Javascript函数中?

时间:2011-01-29 16:20:35

标签: jquery jtemplates

如何在ASP.NET中使用jTemplates + jQuery时将数据库值作为参数传递给Javascript函数?

<td>
    <a href="#" title="Click to edit" onclick="AddReturnPopUP($T.record.ITReturnID);">
    {formatJSONDate($T.record.AssesmentStartYear)}
</td>

对此有何想法?

@Dave:我看过你的帖子,它很棒,但我只需要将一个特定的ID传递给一个javascript函数 - AddReturnPopUP(param) - 我无法做到。 发布代码:

<script id="jTemplate" type="text/html">
                <table border="1" cellpadding="3" cellspacing="2" class="mGrid">
                    <thead>
                        <tr>
                            <th>
                                Assesment Start Year
                            </th>
                            <th>
                                Assesment End Year
                            </th>
                            <th>
                                Returned Income
                            </th>
                            <th>
                                Tax Paid
                            </th>
                            <th>
                                Last Update
                            </th>
                        </tr>
                    </thead>
                    <tbody>
                        {#foreach $T.d as record}
                        <tr class="{#cycle values=['','alt']}">
                            <td>
                                <a href="#" title="Click to edit" onclick="AddReturnPopUP($T.record.ITReturnID);">
                                                {formatJSONDate($T.record.AssesmentStartYear)}
                            </td>
                            <td>
                                {formatJSONDate($T.record.AssesmentEndYear)}
                            </td>
                            <td>
                                {$T.record.ReturnedIncome}
                            </td>
                            <td>
                                {$T.record.TaxPaid}
                            </td>
                            <td>
                                {formatJSONDate($T.record.LastUpdate)}
                            </td>
                        </tr>
                        {#/for}
                    </tbody>
                </table>
                </script>

设置jTemplate:

function PopulateReturns()
    {
        var param = {clientId: qs};
        var data = JSON.stringify(param);
        $.ajax({
                type: "POST",
                url: "EditClient.aspx/GetReturns",
                data: data,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function success(data) {
                                     $('#placeHolder').setTemplate($("#jTemplate").html());
                                     $('#placeHolder').processTemplate(data);
                },
                error: function (xhr, status, e) {
                    //var err = JSON.parse(xhr.responseText); $("#placeHolder").html("Error:" + err.Message);  
                }
            });
    }

我需要的是将$T.record.ITReturnID的值作为参数传递给Javascript函数 - AddNewReturn(Id),该函数目前会抛出异常: $T未定义 如果您需要更多详细信息,请与我们联系。

2 个答案:

答案 0 :(得分:1)

如果你还没有看到它,我有一个完整的例子,使用ASP.NET,jQuery和jTemplates做类似的事情:http://encosia.com/2008/06/26/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/

如果这没有帮助,请更新您的问题并提供更多详细信息。我们需要查看更多模板代码,用于呈现模板的JavaScript,以及有关您尝试呈现的数据结构的更多详细信息。

值得注意的是,如果你是从头开始,我建议使用jQuery模板而不是jTemplates。 jTemplates很棒,但jQuery模板得到了更积极的支持/开发。

修改

更改您的onclick属性,如下所示:

<a href="#" title="Click to edit" onclick="AddReturnPopUP({$T.record.ITReturnID});">

这应该正确地注入ITReturnID值。

答案 1 :(得分:0)

传递这个:onclick="AddReturnPopUP('{$T.record.ITReturnID}');" js功能可以正常工作!