Knockout-Kendo и Kendo UI MVC обертки

Вот сценарий

  1. Я хочу отобразить данные в сетке кендо и при выборе строки в этой сетке, она должна отображать детали этой строки в форме с текстовыми полями. Пользователь сможет обновить значения, и это должно быть отражено в кендо Grid. Для этого использую knockout-kendo.js.

    Вот ссылка на jsfiddle - http://jsfiddle.net/saisworld/u7YnY/

    Умею отображать и привязывать данные к сетке. Но при нажатии на строку в сетке. Это не отражается в форме. Не уверен, что мне не хватает. Пожалуйста, порекомендуйте.

  2. Я также хочу протестировать тот же сценарий с оболочками Kendo UI mvc для отображения сетки (вместо использования декларативной инициализации, как в примере выше) и платформы Knockout-kendo.js вместе и посмотреть, могут ли они идти вместе.

Здесь он может привязывать данные к сетке, затем может использовать knockout-kendo или просто knockout, чтобы получить данные из сетки и отобразить их в форме, но он не обновляется обратно в сетке.

<p class="k-block k-header k-shadow"> Kendo Grid - Companies</p>
@(Html.Kendo().Grid(Model)
        .Name("somegrid")
        .DataSource(ds => ds.Ajax().PageSize(10).ServerOperation(false))
        .Columns(c =>
        {
            c.Bound(p => p.CompanyName).Width(2);
            c.Bound(p => p.FullAddress).Width(2);
        })
        .Selectable(s => s.Mode(GridSelectionMode.Single))
        .Events(e=>e.Change("onChange"))
        .Pageable()
        .Sortable()
        .Filterable()
  )

<form class="kCompaniesClass k-block k-info-colored">
<div class="k-header k-shadow">Company Details - using Kendo MVVM</div>
<table>
    <tr>
        <th>Company Name</th>
        <th>Address</th>
    </tr>
    <tr>
        <td>
            @Html.TextBox("CompanyName",null,new Dictionary<string, object>{{"data-bind","value: CompanyName"}})
        </td>
        <td>
            @Html.TextBox("Fulladdress",null,new Dictionary<string, object>{{"data-bind","value: FullAddress"}})
        </td>
    </tr>
</table>

</form>


 <script type="text/javascript">
   var viewModel = {
    CompanyName: ko.observable(""),
    FullAddress: ko.observable("")
 };


function onChange(e) {
    grid = e.sender;
    var koCompanyItem = grid.dataItem(this.select());
    viewModel = koCompanyItem;
   /* ko.cleanNode(document.getElementById("somegrid"));
    ko.applyBindings(viewModel, document.getElementById("somegrid"));*/
    ko.applyBindings(viewModel);
}

0 ответов

Другие вопросы по тегам