Minnu Sanju Ответов: 1

Как добавить новую строку в таблицу в knockout.js


Привет,

Теперь у меня есть таблица с пятью столбцами. Три столбца-это выпадающие списки и две другие кнопки(для добавления строки и удаления строки)

код cshtml-это:

<table class="viewtable">
                  <tbody>
                     <tr>
                        <td></td>
                        <td><select name="property" style="width:150px;" data-bind="value:ViewProperty, options:propertyValues, optionsText:'propertyName', optionsValue:'propertyId'">
                        </select></td>
                        <td><select name="condition" style="width:100px;" data-bind="value:Condition, options:conditionValues, optionsText:'conditionName', optionsValue:'conditionId'">
                        </select></td>
                        <td><select name="value" style="width:150px;" data-bind="value:PropertyValue, options: ViewProperty() == '1' ? categoryValues : ViewProperty()=='2' ? clientValues : ViewProperty()=='3' ? priorityValues : ViewProperty()=='4' ? statusValues : empty, optionsText: ViewProperty() == '1' ? 'Category' : ViewProperty()=='2' ? 'Client' : ViewProperty()=='3' ? 'priorityName' : ViewProperty()=='4' ? 'statusName' : 'empty', optionsValue: ViewProperty() == '1' ? 'CategoryId' : ViewProperty()=='2' ? 'ClientId' : ViewProperty()=='3' ? 'priorityId' : ViewProperty()=='4' ? 'statusId' : 'empty' "></select></td>
                        <td><button class="removeViewDetail" >-</button></td>
                        <td><button class="addViewDetail">+</button></td>
                        <td style="width:900px;" ></td>
                    </tr>
                 </tbody>
                 </table>




Knockout.js код есть:

var self = this;
    self.ViewProperty = ko.observable();
    self.Condition = ko.observable();
    self.PropertyValue = ko.observable();
    self.empty = "";

     var property = function (name, id) { this.propertyName = name; this.propertyId = id; };
    self.propertyValues = ko.observable([
        new property("Category", 1),
        new property("Client", 2),
        new property("Priority", 3),
        new property("Status", 4)
    ]);

    var condition = function (name, id) { this.conditionName = name; this.conditionId = id; };
    self.conditionValues = ko.observable([
        new condition("is", 1),
        new condition("is not", 2)
    ]);

    self.categoryValues = ko.observable([]);
    $.getJSON("/api/helpdeskapi/getCategory", function (data) {
        self.categoryValues(data);
    });

    self.clientValues = ko.observable([]);
    $.getJSON("/api/helpdeskapi/getClients", function (data) {
        self.clientValues(data);
    });

    var priority = function (name, id) { this.priorityName = name; this.priorityId = id; };
    self.priorityValues = ko.observable([
        new priority("High", 2),
        new priority("Medium", 1),
        new priority("Low", 3)
    ]);

    var status = function (name, id) { this.statusName = name; this.statusId = id; };
    self.statusValues = ko.observable([
        new status("Open", 1),
        new status("Assigned", 2),
        new status("Closed", 3)
    ]);



Теперь мне нужно добавить строки в таблицу при нажатии кнопки"+".
Пожалуйста, кто-нибудь, помогите мне. Я перепробовал много кодов, но безуспешно. пожалуйста, помогите мне.

1 Ответов

Рейтинг:
1

RameshManoharan

Нужно нажать на пункт, чтобы модель представления на кнопку нажать

Пожалуйста, обратитесь по следующей ссылке. это будет полезно. Служебные функции в KnockoutJS - JSFiddle[^]