【问题标题】:GroupBy Knockout.jsGroupBy Knockout.js
【发布时间】:2013-05-22 03:33:31
【问题描述】:

我在 C# 中有这个 Razor 代码,并尝试在 Knockout 中做同样的事情

 @foreach (var group in Model.Details.SonstigeNummern.OeReferenznummern.GroupBy(x => x.Hersteller))
                {
                    <tr class="ListItem @oddeven">
                        <td>@group.Key</td>
                        <td>
                            @foreach (var nummer in group)
                            { 
                                @nummer.Nummer<br />
                            }
                        </td>
                    </tr>
                }

我不知道如何管理 GroupBy。

我的 Viewmodel 与我的 c# 模型具有相同的语法

有人可以帮忙吗?

真诚的

【问题讨论】:

  • 请发布json数据
  • 我很确定在客户端对数据进行分组会更好(也更容易)。 Knockout 专门用于视图构建,因此您应该避免在服务器上构建视图。

标签: c# razor knockout.js group-by


【解决方案1】:

我不确定 linq 查询。但我认为你应该做这样的事情。 如您所见,我只是将所有数据转换为数组,然后转换为 JSON 字符串。 在这个客户端,我将它们重新转换为 javascript 对象。

<table data-bind="foreach: groups">
     <tr class="ListItem @oddeven" >
        <td data-bind="value: Key"></td>
        <td data-bind="foreach: Nummers">
            <span data-bind="text: $data"></span>
        </td>
    </tr>
 </table>



<script type="text/javascript">
    var data= JSON.parse('@Html.Raw(Json.Encode(Model.Details.SonstigeNummern.OeReferenznummern.GroupBy(x => x.Hersteller).Select( g => new {Key = g.Key, Nummers =  g.ToArray()}).ToArray()))');
    var vm = { groups: data};
    ko.applyBindings(vm);
</script>

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2021-06-20
    • 2017-09-13
    • 2011-05-07
    • 2012-03-26
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    相关资源
    最近更新 更多