0

こんにちは、mvc 3 カミソリで konckout.js を使用してグリッドを作成したいのですが、グリッドに 3 つの列があり、最初の列はボタンで、残りの列はコントローラーからデータを取得する必要があります。これをすべて達成しますが、クラスまたはid属性をグリッドのボタンに設定することはできません。実行できるように、ボタンのidが次の列の値である必要があるため、クラスを「選択」する必要がありますjquery を使用したいくつかのクライアント側スクリプト。私のcshtmlページは

    <table>
<thead>
    <tr>
        <th>Buttons</th>
        <th data-bind="text: column1"></th>
        <th data-bind="text: column2"></th>
    </tr>
</thead>
<tbody data-bind="foreach: Office">
    <tr>
    <td><input type="button" value="Select"/></td>
    <td data-bind="text: name"></td>
    <td data-bind="text: location"></td>
    </tr>
</tbody>

私のviewModelはこのようなものです

    var OfficeGrp = function(){
var self =this;
self.name = ko.observable();
self.location = ko.observable(); 
}
var OfficeVM = function () {
    var self = this;
    self.Office = ko.observableArray([new OfficeGrp()]);
    self.column1= ko.observable("Name");
    self.column2= ko.observable("Location");
    self.RadioBtnActive = function () {
        var self = this;
        self.Office.removeAll();
        $.getJSON(urlContent + "Office/GetOfficeGrid", { param: "true" }, function (data) {
            self.Office(data);
        });
    };
    self.RadioBtnAll = function () {
        var self = this;
        self.Office.removeAll();
         $.getJSON(urlContent + "Office/GetOfficeGrid", { param: "true" }, function (data) {
            self.Office(data);
        });
    };

};

$(document).ready(function () {
    var officeVM = new OfficeVM();
    ko.applyBindings(officeVM );
     officeVM.RadioBtnActive();
     $("input:button[class='select']").click(function () {
        alert('HELLO');
    });

});

このようなボタン要素に明示的にクラスを割り当てても

    <input type="button" value="Select" class="select"/>

私が与えたJqueryクリックイベントは、ボタンをクリックしてもヒットしません

    $("input:button[class='select']").click(function () {
        alert('HELLO');
    });

これをノックアウト.jsから使用してみました

    <input type="button" value="Select" class="select" data-bind="attr: { id: name}"/>

また、最初に追加するのを忘れたラジオボタン

    <input id="RadiobtnActive" type="radio" name="radioBtn" checked="checked" class="rdbtn" data-bind="click: RadioBtnActive"/>Active
   <input id="RadiobtnAll" type="radio" name="radioBtn" class="rdbtn" data-bind="click: RadioBtnAll"/> All

しかし、最初にJqueryボタンのクリックイベントを機能させたいのですが、これは機能していません(理由はわかりません)。これにより、IDの値をコントローラーに送信したいと考えています。この場合のヘルプは非常に高く評価されます........

4

1 に答える 1

0

こんにちは、このチュートリアルを見てみてください

http://knockoutjs.com/examples/gridEditor.html

于 2013-11-06T05:57:59.063 に答える