首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >componentone wijmo网格微调

componentone wijmo网格微调
EN

Stack Overflow用户
提问于 2013-02-12 01:17:08
回答 1查看 607关注 0票数 0

我正在尝试使用wijmogrid,并使用breezejs对其进行数据绑定。

我已经附上了我的4个文件,索引html页面和3个javascript文件我的代码如下。

索引页面中的ul运行良好,并给出了预期的结果,因此我知道我的数据正在返回。

但是,搜索网格只显示2个列标题,而不显示数据。有人能给我解释一下我在搜索网格代码中有什么错误吗?

我正在努力学习这方面的知识,并且一直在使用breezejs网站上的BreezyDevices示例代码作为breezejs代码的基础。这一切似乎都在工作,但我不能弄清楚wijmo数据绑定部分。我确实认为我可以使用类似于ul的代码,并对结果进行foreach,然后构建一个表,然后在必要时将该表转换为wijmogrid。

代码语言:javascript
运行
复制
*** index.cshtml start ***



<ul data-bind="foreach: resultBPP">
        <li class="results">

            <form>
                <label for="fn">Field 1: </label>
                <input id="fn" type="text" data-bind="value: Field1" placeholder="first" />
                <label for="ln">Field 2: </label>
                <input id="ln" type="text" data-bind="value: Field2" placeholder="last" />

                <br />
            </form>

        </li>
    </ul>

   <table id="searchGrid" data-bind="
    wijgrid: {
        data: resultBPP,
        allowSorting: true,
        columns: [
        {dataKey: 'Field1', sortDirection: 'ascending', headerText: 'Field 1', width: 60 },
        {dataKey: 'Field2', sortDirection: 'ascending', headerText: 'Field 2', width: 60}
        ]
    }">
</table>

<!--3rd party library scripts -->
    <script src="/Scripts/jquery-1.9.0.min.js"></script>
    <script src="~/Scripts/jquery-ui-1.10.0.min.js"></script>
    <script src="/Scripts/knockout-2.2.1.js"></script>
    <script src="/Scripts/q.js"></script>
    <script src="/Scripts/breeze.debug.js"></script>

    <!-- wijmo CSS and scripts -->
    <link href="~/Content/themes/aristo/jquery-wijmo.css" rel="stylesheet" />
    <link href="~/Content/jquery.wijmo-complete.2.3.5.css" rel="stylesheet" />
    <script src="~/Scripts/jquery.wijmo-open.all.2.3.5.min.js"></script>
    <script src="~/Scripts/jquery.wijmo-complete.all.2.3.5.js"></script>
    <script src="~/Scripts/knockout.wijmo.js"></script>



    <!-- Application scripts -->
    <script src="/Scripts/app/logger.js"></script>
    <script src="/Scripts/app/dataservice.js"></script>
    <script src="/Scripts/app/bppViewModel.js"></script>
    <script src="/Scripts/app/main.js"></script>

***end of index.cshtml****


*** main.js start ****

((function (root) {
    var app = root.app;
    app.logger.info('Data is booting');
    ko.applyBindings(app.bppViewModel);
})(window));

*** end of main.js ***


*** dataservice.js start ***

var searchTable = 'SearchResults';
(function (root) {
    var breeze = root.breeze;
    var app = root.app;
    var logger = app.logger;
    var serviceName = 'api/BPP';
    var manager = new breeze.EntityManager(serviceName);
    var dataservice = {
        getSearchResults: getSearchResults
    };
    app.dataservice = dataservice;
    function getSearchResults(searchArray) {
        logger.info("querying for search results");
        var query = new breeze.EntityQuery().from('searchTable').where('searchfield', 'substringof', '1').orderBy('searchfield').take(10);
        return manager.executeQuery(query).then(function (data) {
            processResults(data, searchArray);
        }).fail(queryFailed);
    }
    ; ;
    function processResults(data, searchArray) {
        logger.success("queried all results");
        searchArray.removeAll();
        var searchResults = data.results;
        searchResults.forEach(function (searchResult) {
            searchArray.push(searchResult);
        });
    }
    function queryFailed(error) {
        logger.error("Query failed: " + error.message);
    }
})(window);

*** end of dataservice.js ****

*** viewmodel.js start ***
((function (root) {
    var app = root.app;
    var dataservice = app.dataservice;
    var vm = {
        resultBPP: ko.observableArray([]),
        hide: ko.observable(true)
    };
    getSearchResults().then(function () {
        vm.hide(false);
    });
    app.bppViewModel = vm;
    function getSearchResults() {
        return dataservice.getSearchResults(vm.resultBPP);
    }
})(window));

*** end of viewmodel.js ***
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-04 23:08:01

这实际上是jQuery UI的小部件工厂中的一个问题。工厂将递归地$.extend options对象中的所有对象。因此,当将网格的数据选项设置为Breeze数据源时,它将遍历其整个数据模型并扩展每个对象。这导致了JS中的堆栈溢出。在初始化过程中,我们必须破解网格以删除数据选项,然后再将其放回网格中。

在Wijmo3.0.0b3(Beta3)中已经发布了对微风的支持,你可以在这里阅读更多:http://wijmo.com/wijmo-v3-beta-3-has-landed/这个支持不仅仅包括网格修复。我们有一个数据API和一个微风适配器。因此,您可以轻松地将我们所有的小部件绑定到一个微风数据源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14817273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档