更新页面的一部分(一页模型)

时间:2015-11-02 11:05:12

标签: javascript html asp.net asp.net-mvc knockout.js

我正在创建一个包含数据库列表数据的简单页面,我想通过将行数据传输到表单中来创建编辑所选行的选项。 然后,用户可以更新数据并提交表单。

问题可能是我使用相同的表单来插入和编辑数据(取决于objectID是否为null)。

我设法通过使用ko.applyBindings(PAGMODEL,DOM_ELEMENT)来刷新页面的两个部分,但是当用户需要使用' livesearch'来查找和加载数据时,我无法显示数据。 /'自动完成' (我得到的数据,它只是在html上显示)

代码:

function MedicalCentersPM(parameters) {
var self = this;

self.MyModelArray = ko.observableArray();
self.MyModelToManipulate = new MyModel();

self.SearchQuery = ko.observable('');

self.loadData = function () {
    loadDataRowsSync(
        parameters.filter,
        self.SearchQuery(),
        '',
        function () {
            self.MyModelArray.removeAll();
        },
        function (jsonData) {
            $.each(jsonData, function (i, mc) {
                self.MyModelArray.push(new MyModel(mc));
            });
        }
    );

    /// UPDATING HTML (ONE WAY)
    try {
        ko.applyBindings(self, parameters.dataDOM);
    } catch (exc) { }
};
self.manipulateRow = function () {
    axaxManipulationCall(
        parameters.manipulationUrl,
        ko.toJSON(self.MyModelToManipulate),
        function () {
            self.resetForm();
            self.loadData();
        },
        function (message) {
            alert(message);
        }
    );
};

self.selectRow = function (row) {
    self.MyModelToManipulate(MyModel(ko.toJS(row)));

    ko.cleanNode(parameters.formDOM);
    ko.applyBindings(self, parameters.formDOM);
};

self.resetForm = function () {
    self.MyModelToManipulate = new MyModel(JSON.parse(parameters.defaultModel));

    ko.cleanNode(parameters.formDOM);
    ko.applyBindings(self, parameters.formDOM);
};
self.messageRow = function () {
    alert(ko.toJSON(self.MyModelToManipulate));
    return false;
};

self.loadData();
self.resetForm();
};

JSFiffle:http://jsfiddle.net/cbpedmh4/5/

我可能做错了什么或者我错过了一些小细节....所以...... 有谁能指出我正确的方向?

谢谢

0 个答案:

没有答案