参数复杂对象作为未定义进入JavaScript函数

时间:2013-08-12 17:13:15

标签: c# javascript asp.net kendo-ui

在页面1上,我得到了我需要的对象:

ProjectSearchCriteria = (GBLProjectSearchCriteria)Session[GblConstants.SESSION_PROJECT_SEARCH_CRITERIA];

我正在尝试将其传递给第2页的页面加载API。

第2页:

<!DOCTYPE HTML>
<html>
    <head>
        <title></title>
        <link href="../x.css" type="text/css" rel="stylesheet">
        <link href="../Content/kendo.common.min.css" rel="stylesheet" />
        <link href="../Content/kendo.default.min.css" rel="stylesheet" />
    </head>
    <body>
        <form id="frmProjectSearchResults" runat="server">
        </form>
        <script src="../Scripts/ProjectsTreeView.js"> </script>
        <script type="text/javascript">
            CreateProjectTree(<%= ProjectSearchCriteria %>);
        </script>
    </body>
</html>

这是JavaScript函数:

function CreateProjectTree(searchCriteria)
{
    debugger;
    var projects = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: "../api/projects?searchcriteria =" + searchCriteria,
                contentType: "application/json"
            },
            parameterMap: function (data, operation) {
                return JSON.stringify(data);
            }
        },
        schema: {
            model: {
                children: "seasons"
            }
        }
    });

    $("#treeview").kendoTreeView({
        dataSource: projects,
        loadOnDemand: true,
        dataUrlField: "LinksTo",
        checkboxes: {
            checkChildren: true
        },
        dataTextField: ["Title"],
        select: treeviewSelect
    });

    function treeviewSelect(e) {
        var node = this.dataItem(e.node);
        window.open(node.NotificationLink, "_self");
    }
}

任何人都可以帮我理解我做错了吗?

1 个答案:

答案 0 :(得分:1)

也许这个:

<script type="text/javascript">
    CreateProjectTree("\"" + <%= ProjectSearchCriteria %> + "\"");
</script>