1

大家好,我想在 MVC 3 razor 中使用 knockout.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>
    </table>

我的视图模型是这样的

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');
    });

});

即使我像这样明确地将类分配给按钮元素

我给出的 jQuery 单击事件在单击按钮时不会被击中

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

我已经尝试使用来自 knockout.js

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

但我首先想让 jQuery Button click 事件起作用,但它不起作用(我不知道为什么),我想将 id 的值发送到控制器。在这种情况下的帮助将不胜感激............

4

0 回答 0